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

链接库文件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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值