VC如何生成及使用DLL.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC如何生成及使用DLL

VC2008如何生成及使用DLL 生成、使用DLL看起来简单,但做起来才发现还是有一些地方需要注意的。 1. 打开VS2008,新建一个VC工程,选择Win32类型,Win32项目: 2. 应用程序类型选择DLL,附加选项选择导出符号,公共头文件不要选择,然后点完成即可。 3. 工程生成后需要修改属性,在配置属性的常规选项中将MFC的使用修改为“静态库中使用MFC”。 注意,这一步是必须的,否则写出来的DLL将需要在有VC2008的环境上才能运行。 4. 关注自动生成的文件MyDllTest.cpp,其中有几个实例,可以将他们删除,也可以不管他们。 5. 添加自己的接口,如:GetMyDllVersion ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150 // 得到当前DLL的版本号 MYDLLTEST_API UINT32 GetMyDllVerion( VOID ) { return 1234; } 6. 在头文件MyDllTest.h中添加声明 ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150 MYDLLTEST_API UINT32 GetMyDllVerion( VOID ); 7. 添加导出符号定义文件,理论上是可以不要导出定义的,但是那样的结果就是生成的DLL中的符号名字不明确,只有定义了导出符号,才可以使得DLL中的借口函数名称得以确定。(关于def与dll 请参阅msdn ) 文件内容: ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150 LIBRARY MyDllTest EXPORTS GetMyDllVerion 8. 在项目属性中设置模块定义文件为刚才建立的symexport.def文件: 9. 生成,可以得到一个MyDllTest.dll,使用Depends工具(VC6.0自带)可以查看这个DLL中包含了多少接口以及接口名: 会发现除了我们定义的借口GetMyDllVersion外还有几个??开头的接口,他们就是那些没有在模块定义文件中定义的借口自动生成的。 10. 除了DLL外我们还会发现生成了MyDllTest.lib文件,这个lib文件可以在其他的程序使用这个DLL的时候将其连接进去,同时只要包含MyDllTest.h即可调用这个DLL中的借口了。 如何引入dll 方法一.装载期间动态加载。(需要lib和dll) 1。新建Win32应用程序空项目。 2。把生成的dll、lib这2个文件复制到新建的目录下。 3。添加导入库:工具--项目和解决方案(vs里是options)--VC++目录,选择右侧“显示以下内容的目录”下的“库文件”,把lib所在目录添加。 4。头文件: MyDllTest.h(与编写DLL中一样) 5。源文件:main.c 可注释#pragma comment(lib, MyDllTest.lib)这条,但必须设置链接库,方法: 右击项目--属性--配置属性--链接器--输入--附加依赖项: MyDllTest.lib #include MyDllTest.h #include windows.h #pragma comment(lib, MyDllTest.lib) int WINAPI WinMain(__in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd ) { GetMyDllVersion(); return 0; } 方法二:运行期间

文档评论(0)

phl805 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档