打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
动态库的显式链接和隐式链接
1.显式链接
例如导入函数如下
int sum(int a,int b);
那么显式调用时,首先定义一个函数指针,
typedef int (*f)(int,int)
然后加载动态库,
HINSTANCE handle=LoadLibrary("t.dll");
接着得到该函数的指针
f f1=GetProcAddress("sum");
那么就可以利用函数指针f1使用该函数了
最后,用完后释放库文件
FreeLibrary("t.dll");
2.隐式链接
隐式链接又分为两种方法。
2.1在工程中设置添加的动态导入库,然后再源程序中添加头文件即可
2.2在源程序中添加代码pragma comment(lib,"t.lib");然后添加头文件即可
在msvc调用mingw动态库时,由于g++生成的导入库是.a格式的,在msvc中无法识别,因此需要用到msvc的lib工具进行生成,此时需要两个文件.dll和.def文件,如果没有.def文件,需要先用dumpbin命令生成它,并修改成正确的格式,然后生成.lib文件。
dumpbin /exports my.dll>my.def
lib /machine:ix86 /def:my.def
在mingw中对应的转换工具为pexports(生成.def),dlltool(生成.a)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
动态库、静态库、运行时库、引入库之间的区别
DLL动态库的创建,隐式加载和显式加载
Qt DLL总结【一】-链接库预备知识 - 柳北风儿~~~~~~~欲宇仙炅 - ITeye技术网站
lib和dll的区别与使用
lib 和 dll 的区别、生成以及使用详解
利用VC调用动态链接库中的函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服