链接库文件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
具体原因未知,待以后解开.....