DLL的创建和使用

  • 使用Visual Studio 2019创建DLL
    • 新建动态链接库(DLL)项目,此处我的项目名称为DLL。
    • 编写自己的头文件。
      • #pragma once
        
        #ifdef DLL_EXPORTS
        #define DLL_API __declspec(dllexport)
        #else
        #define DLL_API __declspec(dllimport)
        #endif
        
        extern "C" DLL_API int test(int, int);

        注意:DLL_EXPORTS为项目名称_EXPORTS,否则生成解决方案会出现dll链接不一致的警告。

    • 编写自己的源文件。
      • #include "pch.h"
        #include "DLL.h"
        
        int test(int a, int b) {
            return a + b;
        }

        注意:一定要包含pch.h文件,VS2017之前为stdafx.h。

    • 生成解决方案。至此DLL创建成功,我们需要的头文件(.h),库文件(.lib)和动态链接文件(.dll)已经全部具备。
  • 使用DLL
    • 创建控制台项目。
    • 编写测试程序。
      • #include <iostream>
        #include "DLL.h"
        
        int main()
        {
            std::cout << "Hello World!\n" << test(1, 2) << std::endl;
        }
    • 将DLL头文件导入项目包含目录中。
      • 在解决方案资源管理器中右击项目打开属性页。
      • 选择 ”配置属性“ 》 ”C/C++“ 》”常规“。
      • 在附加包含目录中添加头文件所在目录路径(DLL项目的路径)。
      • 确定保存更改。
    • 将DLL库文件添加到项目中。
      • 在解决方案资源管理器中右击项目打开属性页。
      • 选择 ”配置属性“ 》 ”链接器“ 》”输入“。将lib库文件名添加到附加依赖项。
      • 选择 ”配置属性“ 》 ”链接器“ 》”常规“。将lib库文件所在目录路径添加到附加库目录,可以用$(IntDir)宏来替代具体路径。例如完整路径为F:\VC\TEST\DLL\x64\Debug,用宏替换为F:\VC\TEST\DLL\$(IntDir)
      • 确定保存更改。
    • 生成后事件复制DLL。
      • 在解决方案资源管理器中右击项目打开属性页。
      • 选择 ”配置属性“ 》 ”生成事件“ 》”生成后事件“。
      • 在命令行中写入xcopy /y /d "F:\VC\TEST\DLL\$(IntDir)DLL.dll" "$(OutDir)"
      • 确定保存更改。
    • 至此头文件,库文件和动态链接库文件已经都包含到项目中。生成解决方案就可以运行了。

猜你喜欢

转载自www.cnblogs.com/tianyahai/p/11758467.html