VS2022 添加 dll 库文件

参考链接

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

1,添加库文件路径

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

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

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

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

 

添加库文件名

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

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

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

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

 

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

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

    #include <Windows.h>
    
    int main() {
      SetDllDirectory(L"C:\\path\\to\\dlls");
      // ...
      return 0;
    }
    复制代码
  2. 在程序中使用 LoadLibrary 函数加载 DLL 文件时,指定 DLL 文件的完整路径。

    #include <Windows.h>
    
    int main() {
      HMODULE hDll = LoadLibrary(L"C:\\path\\to\\mydll.dll");
      if (hDll == NULL) {
        // 处理加载失败的情况
      }
      // ...
      FreeLibrary(hDll);
      return 0;
    }
    复制代码
  3. 在程序中使用 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
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

要在Visual Studio 2022中集成DLL文件,可按以下步骤操作: ### 生成DLL文件 首先要生成DLL文件。在Visual Studio 2022里,右击项目属性,把配置类型选择为动态库(.dll),SDK可选择Release x64(将来导入DLL时也需在Release x64下进行)。接着右击解决方案,生成解决方案(快捷键:Ctrl + Shift + B)。之后在项目的x64/Release下会有两个需要的文件,分别是test_dll.dll和test_dll.lib,另外还需要编写的test_dll.h文件 [^2]。 ### 配置项目属性以集成DLL - **包含目录配置**:在项目属性中,找到“配置属性” -> “C/C++” -> “常规” -> “附加包含目录”,将DLL头文件(如test_dll.h)所在的目录添加进去。 - **库目录配置**:同样在项目属性里,找到“配置属性” -> “链接器” -> “常规” -> “附加库目录”,把DLL的.lib文件(如test_dll.lib)所在的目录添加进来。 - **链接器输入配置**:在“配置属性” -> “链接器” -> “输入” -> “附加依赖项”中,添加DLL的.lib文件名(如test_dll.lib)。 ### 运行时配置 在程序运行时,需要确保DLL文件(如test_dll.dll)能被找到。可以把DLL文件复制到可执行文件所在的目录,或者将DLL文件所在的目录添加到系统的环境变量“Path”中。 ### 代码中使用DLL 在代码里包含DLL的头文件,然后就能够调用DLL中导出的函数了。例如,若DLL中有一个判断素数的函数`isPrime`,代码示例如下: ```cpp #include "test_dll.h" #include <iostream> int main() { std::uint64_t num = 17; if (isPrime(num)) { std::cout << num << " is a prime number." << std::endl; } else { std::cout << num << " is not a prime number." << std::endl; } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值