DLL中使用头文件和导出一个类

在DLL项目中。添加mydll.h/ mydll.cpp

  • 原则,
    在DLL文件中,将函数声明为 _declspec(dllexport)
    在CPP文件中,将函数声明为 _declspec(dllimport)

实现方法

使用条件编译指令

mydll.h中输入以下代码

#ifndef MYDLL_H
#define  MYDLL_H


#ifdef MYDLL_EXPORTS
#define MYDLL  _declspec(dllexport)
#else 
#define MYDLL _declspec(dllimport)

#endif
MYDLL int Add(int a, int b);


#endif // MYDLL_H

mydll.cpp中输入以下代码:

#include <stdio.h>

#define MYDLL_EXPORTS
#include "mydll.h"

int Add(int a, int b) {
    return a + b;
}

编译成功后可用动态库的简单使用及DLL的部署中的方法使用

使用方法2:vs2017工作环境下

5804969-cf37e8a61477ce34.gif
用户SDK

将这些包含到“系统目录”中(配置vc++环境变量)

5804969-a3c50e886b1bfdc1.gif
PATH

再将dll文件按照 动态库的简单使用及DLL的部署中的方法部署
新建一个空项目,可以像使用标注库一样用尖括号<>使用你的动态库了

在新项目CPP中输入:

#include<stdio.h>

#include <mydll.h>


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




int main() {

    int a = Add(12, 5);
    printf("%d", a);
    getchar();
    return 0;
}

编译,运行成功

导出类的定义,其实就是导出类的成员函数

MyObject.h

#pragma once

#ifdef MYDLL_EXPORTS
#define MYDLL _declspec(dllexport)
#else
#define  MYDLL _declspec(dllimport)
#endif // MYDLL_EXPORTS


class MYDLL MyObject
{
public:
    MyObject(int v);
    void print();

private:
    int value;
};

MyObject.cpp

// MyObject.cpp: 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include <stdio.h>

#define  MYDLL_EXPORTS
#include "MyObject.h"


MyObject::MyObject(int v):value(v){}

void MyObject::print() {
    printf("%d....\n", value);
}

使用方法仍然是一样的

❤️我的目标是:someday,即便你花钱看我的文章,也会觉得心满意足


5804969-64ca917b7b70f881.jpg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值