zoukankan      html  css  js  c++  java
  • VS2017 创建C++Dll动态库(二)

    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、生成解决方案  在x64debug()目录下即有.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)

  • 相关阅读:
    Server-Side Access Control
    MDN > Web technology for developers > HTTP
    HTML5解决跨域问题
    HTML5安全:CORS(跨域资源共享)简介
    HTML5 知识点
    android中viewPager+fragment实现的屏幕左右切换(进阶篇)
    【Android】Android 博客园客户端 (七)登录功能
    【Tools】Pro Git 一二章读书笔记
    【JavaScript】重温Javascript继承机制
    【334】Python Object-Oriented Programming
  • 原文地址:https://www.cnblogs.com/xihong2014/p/14865405.html
Copyright © 2011-2022 走看看