参考链接

Visual Studio中的C++程序如何使用第三方静态库和动态库? - 掘金

1,添加库文件路径

在 Visual Studio 2022 中,可以通过在项目属性页面中添加库文件的目录,让编译器知道需要链接的库文件的位置。具体步骤如下:

打开项目属性页面:在“解决方案资源管理器”中右键单击要配置的项目,选择“属性”菜单项。

选择“VC++ 目录”选项卡:在“属性页”中选择“VC++ 目录”选项卡。添加包含目录:在“包含目录”中添加库文件的路径,包括 .h 文件所在的目录。

添加库目录:在“库目录”中添加库文件的路径,包括 .lib 文件所在的目录和 .dll 文件所在的目录。

添加库文件名

同样是在项目属性页面中添加库文件的名称,让编译器知道需要链接的库文件的名称。具体步骤如下:

打开项目属性页面:在“解决方案资源管理器”中右键单击要配置的项目,选择“属性”菜单项。

选择“链接器”选项卡:在“属性页”中选择“链接器”选项卡。

需要注意的是,对于 .dll 文件,还需要将其复制到可执行文件所在的目录下。也就是需要拷贝库文件到生成exe程序的路径下

除了将 DLL 文件复制到可执行文件所在的目录下,还可以通过设置动态链接库的路径来指定 DLL 文件的位置。具体来说,可以通过以下方法之一来设置动态链接库的路径:

使用 SetDllDirectory 函数来设置 DLL 文件所在目录的路径。

#include

int main() {

SetDllDirectory(L"C:\\path\\to\\dlls");

// ...

return 0;

}

复制代码 在程序中使用 LoadLibrary 函数加载 DLL 文件时,指定 DLL 文件的完整路径。

#include

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

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 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。