参考链接
Visual Studio中的C++程序如何使用第三方静态库和动态库? – 掘金
1,添加库文件路径
在 Visual Studio 2022 中,可以通过在项目属性页面中添加库文件的目录,让编译器知道需要链接的库文件的位置。具体步骤如下:
-
打开项目属性页面:在“解决方案资源管理器”中右键单击要配置的项目,选择“属性”菜单项。
选择“VC++ 目录”选项卡:在“属性页”中选择“VC++ 目录”选项卡。添加包含目录:在“包含目录”中添加库文件的路径,包括 .h 文件所在的目录。
添加库目录:在“库目录”中添加库文件的路径,包括 .lib 文件所在的目录和 .dll 文件所在的目录。
添加库文件名
同样是在项目属性页面中添加库文件的名称,让编译器知道需要链接的库文件的名称。具体步骤如下:
-
打开项目属性页面:在“解决方案资源管理器”中右键单击要配置的项目,选择“属性”菜单项。
-
选择“链接器”选项卡:在“属性页”中选择“链接器”选项卡。
-
需要注意的是,对于 .dll 文件,还需要将其复制到可执行文件所在的目录下。也就是需要拷贝库文件到生成exe程序的路径下
除了将 DLL 文件复制到可执行文件所在的目录下,还可以通过设置动态链接库的路径来指定 DLL 文件的位置。具体来说,可以通过以下方法之一来设置动态链接库的路径:
-
使用 SetDllDirectory 函数来设置 DLL 文件所在目录的路径。
#include <Windows.h> int main() { SetDllDirectory(L"C:\\path\\to\\dlls"); // ... return 0; } 复制代码
-
在程序中使用 LoadLibrary 函数加载 DLL 文件时,指定 DLL 文件的完整路径。
#include <Windows.h> int main() { HMODULE hDll = LoadLibrary(L"C:\\path\\to\\mydll.dll"); if (hDll == NULL) { // 处理加载失败的情况 } // ... FreeLibrary(hDll); return 0; } 复制代码
-
在程序中使用 LoadLibraryEx 函数加载 DLL 文件时,指定 DLL 文件的路径以及一些其他的加载选项,如 LOAD_WITH_ALTERED_SEARCH_PATH。
#include <Windows.h> int main() { HMODULE hDll = LoadLibraryEx(L"C:\\path\\to\\mydll.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if (hDll == NULL) { // 处理加载失败的情况 } // ... FreeLibrary(hDll); return 0; } 复制代码
这些方法可以避免将 DLL 文件复制到可执行文件所在的目录下,但也可能带来一些其他的问题,比如 DLL Hell,因此需要根据具体的情况进行选择。我们这里暂时就选择最简单的拷贝方式了。
作者:鲁班代师
链接:https://juejin.cn/post/7200297595474624573
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。