- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用CodeBlocks新建一个DLL工程,在生成的源代码中更改函数的声明为__stdcall,新建一个Def文件在文件中声明要导出的函数,这样就OK了!
下面贴出来示例的代码:
main.h
C++代码
#ifndef?__MAIN_H__ ??
#define?__MAIN_H__ ??
??
#include?windows.h ??
??
/*??To?use?this?exported?function?of?dll,?include?this?header ?
?*??in?your?project. ?
?*/??
??
//#ifdef?BUILD_DLL ??
//????#define?DLL_EXPORT?__declspec(dllexport) ??
//#else ??
//????#define?DLL_EXPORT?__declspec(dllimport) ??
//#endif ??
??
#ifdef?__cplusplus ??
extern?C??
{ ??
#endif ??
void?__stdcall?SomeFunction(const?LPCSTR?sometext); ??
int?__stdcall?SayHello(const?LPCSTR?lpCaption,?const?LPCSTR?lpText); ??
#ifdef?__cplusplus ??
} ??
#endif ??
??
#endif?//?__MAIN_H__??
main.cpp
C++代码
#include?main.h ??
??
//?a?sample?exported?function ??
void?__stdcall?SomeFunction(const?LPCSTR?sometext) ??
{ ??
????MessageBoxA(0,?sometext,?DLL?Message,?MB_OK?|?MB_ICONINFORMATION); ??
} ??
int?__stdcall?SayHello(const?LPCSTR?lpCaption,?const?LPCSTR?lpText) ??
{ ??
????MessageBoxA(0,?lpText,?lpCaption,?MB_OK?|?MB_ICONINFORMATION); ??
????return?0; ??
??
} ??
BOOL?WINAPI?DllMain(HINSTANCE?hinstDLL,?DWORD?fdwReason,?LPVOID?lpvReserved) ??
{ ??
????switch?(fdwReason) ??
????{ ??
????????case?DLL_PROCESS_ATTACH: ??
????????????//?attach?to?process ??
????????????//?return?FALSE?to?fail?DLL?load ??
????????????break; ??
??
????????case?DLL_PROCESS_DETACH: ??
????????????//?detach?from?process ??
????????????break; ??
??
????????case?DLL_THREAD_ATTACH: ??
????????????//?attach?to?thread ??
????????????break; ??
??
????????case?DLL_THREAD_DETACH: ??
????????????//?detach?from?thread ??
????????????break; ??
????} ??
????return?TRUE;?//?succesful ??
}??
Def文件
C++代码
EXPORTS ??
????SomeFunction ??
????SayHello ??
在CodeBlocks里设置项目的build option中linker Settings的Other Link Options中添加上你写的Def文件的文件名,比如MyDll.def”。这样编译好以后的dll就可以供Delphi使用了。
这里贴出在Delphi中静态调用DLL中函数的部分代码:
Delphi代码
??
implementation??
??
{$R?*.dfm}??
procedure?SomeFunction(const?sometext:?PChar);?stdcall;?external?Dll的名称.dll; ??
function?SayHello(const?lpCaptio
您可能关注的文档
- 土石坝施工挖运设计.doc
- 土石方放坡常用计算公式.doc
- 土耳其游玩注意事项.doc
- 土耳其追偿相关法律制度简介0.docx
- 土豆烧肉简易又好吃的家常菜.doc
- 土豆的37种吃法.doc
- 土豆的各种高档吃法.doc
- 土豆腊肠豆瓣糯米饭.doc
- 土豆饼等方便自做小吃.doc
- 土质学和土力学试卷(B).doc
- 基于核心素养的初中艺术社团活动课程评价体系构建教学研究课题报告.docx
- 《某地区基层医疗机构慢性病管理中基层医务人员慢性病管理技能培训效果评价》教学研究课题报告.docx
- 2025四川大学校医院人才招聘模拟试卷带答案详解.docx
- 2025四川大学博物馆编制外用工岗位招聘4人模拟试卷及答案详解1套.docx
- 2025四川大学博物馆编制外用工岗位招聘4人考前自测高频考点模拟试题及参考答案详解1套.docx
- 2025四川大学华西第四医院泌尿外科盆底男科科研助理选聘1人考前自测高频考点模拟试题附答案详解.docx
- 《感恩节》幼儿园小班标准教案(精选.pptx
- 2025四川大学华西第四医院泌尿外科盆底男科科研助理选聘1人考前自测高频考点模拟试题带答案详解.docx
- 2025四川大学博物馆编制外用工岗位招聘4人模拟试卷带答案详解.docx
- 2025四川大学华西第四医院泌尿外科盆底男科科研助理选聘1人考前自测高频考点模拟试题及答案详解一套.docx
文档评论(0)