VC工程引用第三方库
1.动态库工程配置:
一、隐式调用:
1.属性-->VC++目录-->包含目录(添加头文件目录)
2.属性-->VC++目录-->库目录(动态库的lib文件目录)
3.链接器-->输入-->附加依赖项(动态库的lib文件名称)
4.拷贝dll文件到exe目录(或者设置dll目录)
注:其中2.3步骤可以用代码#pragma comment(lib, ".\\****.lib")替换,效果一样
二、显示调用:
1.创建一个函数指针,其指针数据类型要与调用的 DLL 引出函数相吻合。
2.通过 Win32 API 函数LoadLibrary显式的调用DLL,此函数返回DLL 的实例句柄
3.通过 Win32 API 函数GetProcAddress获取要调用的DLL 的函数地址,把结果赋给自定义函数的指针类型
4.使用函数指针来调用 DLL 函数
5.最后调用完成后,通过 Win32 API 函数FreeLibrary()释放DLL 函数
2.静态库工程配置:
1.属性-VC++目录-包含目录(添加头文件目录)
2.属性-VC++目录-库目录(静态库lib文件目录)
3.链接器-输入-附加依赖项(静态库的lib文件名称)
注:其中2.3步骤可以用代码#pragma comment(lib, ".\\****.lib")替换
3.动态链接库dll目录配置方法
1.配置属性->调试->环境:输入path=包含dll文件的文件夹路径(=左右不能有空格)
2.将dll文件拷贝到生成的.exe所在的文件夹中
4.查看dll是x86、x64
1.打开'Developer Command Prompt for VS 2019'命令行窗口
2.输入:dumpbin /headers 'dll路径'
5.查看库导出函数
··· 1.动态库导出函数: dumpbin -exports *.dll
2.静态库导出函数:dumpbin /LINKERMEMBER *.lib ···
6.查看动态库依赖关系
dumpbin /dependents .dll/.exe
7.查看*.lib是静态库还是导入库
lib.exe /list .lib 显示.obj或者*.o是静态库
8.查看dll被哪一个进程占用
tasklist /m dll文件名
taskkill /pid 14856 结束进程