现在的位置: 首页 > 综合 > 正文

眼过千遍不如手过一遍——简单动态链接库的编写

2013年01月18日 ⁄ 综合 ⁄ 共 1551字 ⁄ 字号 评论关闭

链接库文件TestDLL.h

 

链接库文件TestDLL.cpp

 

测试链接文件testlink.cpp

 

输出结果:

 

160

 

在TestDLL中再创建DLLMAIN函数如下:

 

则输出结果为:

 

process attach of dll
160
process detach of dll

 

以上是动态调用(程序在需要的时候再加载所需要的DLL,此种用法比较灵活)

 

再来看下静态调用,与动态调用不同的是,此种调用在程序编译时就将DLL的加载信息LIB编译进EXE中,当应用程序需要时便从相应的LIB文件中取得DLL的信息来加载DLL,通过符号名来实现对DLL函数的动态链接,与调用内部函数没有区别!

将调用函数testlink.cpp改写成这样:

预期输出结果为

process attach of dll
160
process detach of dll

 

但编译时出现1个警告:inconsistent dll linkage.  dllexport assumed. 未出现错误

而执行时提示:无法启动应用程序,因为计算机中丢失TestDLL.dll

具体原因未知,待以后解开.....

抱歉!评论已关闭.