• VS2019创建动态库,包含普通函数,类,C语言函数


    1. 打开vs2019,创建一个动态链接库
      在这里插入图片描述

    在这里插入图片描述
    2. 在头文件和源文件中分别创建DLLTest.h、DllTest.cpp

    #ifndef DLLTEST_H
    #define DLLTEST_H
    //宏定义导出
    #ifdef DLLTEST_
    #define DLLTEST _declspec(dllexport) //如果没有定义DLLTEST_,就定义 DLLTEST _declspec(dllexport)
    #else
    #define DLLTEST _declspec(dllimport)
    #endif // DLLTEST_
    //导出函数
    DLLTEST int add(int a, int b);
    //导出类
    class DLLTEST DLLTest {
    public:
    	int mul(int a, int b);
    	int div(int a, int b);
    };
    //以C语言方式导出函数
    extern "C" {
    	DLLTEST int csub(int a, int b);
    }
    
    #endif // !DLLTEST_H
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    #include"pch.h"
    #include"DLLTest.h"
    #include
    using namespace std;
    
    int add(int a, int b) {
    	return a + b;
    }
    int DLLTest::mul(int a, int b) {
    	return a * b;
    }
    int DLLTest::div(int a, int b) {
    	return a / b;
    }
    int csub(int a, int b) {
    	return a - b;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    1. 生成Relase × 64,点击生成解决方案,记得要在cpp文件中加入#include"pch.h"

    如果生成的文件只有dll,没有lib。
    项目右键-添加-新建项-选择.def文件添加,添加后不需要任何改动,直接编译。
    在这里插入图片描述

    1. 右键点击解决方案-添加-新建项目-控制台应用(或者空白应用都可以,控制台有写好的模板可以参考)
    // DLLTestDemo.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include 
    using namespace std;
    #include"DLLTest.h"
    
    int main()
    {
        //调用函数
        std::cout << add(1, 0) << endl;
        //调用类中的成员函数
        DLLTest dt;
        std::cout << dt.mul(2, 1) << endl;
        std::cout << dt.div(3, 1) << endl;
        //调用以C语言形式导出的函数
        std::cout << csub(5, 1) << endl;
        getchar();
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    1. 需要配置新建的项目,右键点击属性,最终选取自己建的动态库
      在这里插入图片描述
    2. 配置连接器的附加依赖项,其中.lib文件是在生成的×64的Relase中

    在这里插入图片描述
    7. 配置链接器中的常规附加库目录

    在这里插入图片描述
    8. 右键项目,设置为启动项目,点击本地调试器运行即可!

    在这里插入图片描述

    这样,每次修改库之后,直接编译,无需其他操作,运行启动项目即可使用新编译的lib


    C#调用C++动态库



    以上内容,来自:

    https://blog.csdn.net/CSDNdk1997/article/details/122435377

    https://blog.csdn.net/weixin_44122235/article/details/121116630

  • 相关阅读:
    安卓稳定性测试必备工具Monkey详解
    mysql学习笔记1:mysql字符集和字符集编码
    python判断语句
    智能神经网络在音调识别中的应用(Matlab代码实现)
    selenium webDriver的运用
    《Thinking In Java》作者:不要使用并发!
    余度设计概述
    nvm下载安装+使用教程(管理nodejs版本,实现按需加载版本)
    踩了大坑 : go json.Marshal时,结构体字段需要大写
    IDEA一键启动多个微服务
  • 原文地址:https://blog.csdn.net/u013919153/article/details/126388904