Skip to main content
 首页 » 编程设计

VS2017 创建C++Dll动态库(二)

2022年07月19日129unruledboy

1、参考网上博文《vs2017 C++动态链接库的创建和调用(隐式)》https://www.bbsmax.com/A/kmzLWY1NdG/

     创建动态库项目, 项目属性去掉预编译头

2、添加CDatabase.h ,CDatabase.cpp文件

3、在CDatabase.h中定义

  #ifdef DBHELPER_EXPORTS
  #define EXPORTS_API __declspec(dllexport)

  #ifdef __cplusplus
  # define BEGIN_C_DECLS extern "C" {
  # define END_C_DECLS }
  #else
  # define BEGIN_C_DECLS
  # define END_C_DECLS
  #endif

4、生成解决方案  在x64\debug()目录下即有.dll   .lib等文件

    利用Depends.exe查看DBHelper.dll,能看到输出函数,C++与C#都可以使用。

二、VS调用动态链接库

1、创建一个新的项目

2、在头文件夹中引入DLL的.h头文件,把.h 、.lib文件复制到新建项目所在的文件夹,.dll放入新建项目的Debug()目录

3、在资源文件中引入.lib文件     

(方法二  在调用之处添加头文件并关联库 )

      #include "dll.h"

  #pragma comment(lib, "Dll.lib")

.h .lib 文件如不拷到项目位置,需设置包含目录和库的路径;

4、在main函数中加入如下代码

#include"data.h"

int main()
{
const float angle = 12.5f;
const float distance = 65.0f;
const vector<int> data= { 1193,983,703,784 };
vector<string> datastr;
bool a=WindSpeeddataCalc(data, angle, distance, datastr);
for (int i = 0; i < datastr.size(); i++)
cout << datastr[i]<<endl;
cout << "result:" << a;
getchar();
return 0;
}

5、项目->属性->配置属性->C/C++->代码生成->运行库,选择多线程调试DLL(/MDd)


本文参考链接:https://www.cnblogs.com/xihong2014/p/14865405.html