vs创建dll并调用

创建dll调用,相当于黑盒,他人只能调用接口而看不到里面具体代码。

步骤:

1、首先创建dll项目,在这里我的项目名为dll_demo1,项目自动生成pch.h和framework.h以及pch.cpp和dllmain.cpp

2、在pch.h中定义接口,在这里我创建了一个类MyAge(之前类名前没有加__declspec(dllexport)后面未生成.lib)

// pch.h: 这是预编译标头文件。
// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。

#ifndef PCH_H
#define PCH_H

// 添加要在此处预编译的标头
#include "framework.h"


 
class __declspec(dllexport) MyAge {

public:
	MyAge(int age=0) {
		this->age = age;
	}

	static MyAge* Instance();

	int getAge();

private:
	static MyAge *self;
	int age;
};

#endif //PCH_H

3、在pch.cpp中实现接口内容

// pch.cpp: 与预编译标头对应的源文件

#include "pch.h"

#include <iostream>

MyAge* MyAge::self = nullptr;
MyAge* MyAge::Instance()
{
	if (self == nullptr) {
		self = new MyAge;
	}

	return self;
}

int MyAge::getAge()
{
	return this->age;
}

// 当使用预编译的头时,需要使用此源文件,编译才能成功。

4、然后生成解决方案,在dll_demo1下的Debug中生成了.dll以及.lib
在这里插入图片描述
5、创建一个新的项目,这里名叫usedll_demo1,把上面的dll_demo1.dll和dll_demo1.lib以及pch.h和framework.h放到usedll_demo1工程目录下
在这里插入图片描述
在这里插入图片描述
6、在项目“属性”------“链接器”------“输入”------“附加依赖性”添加dll_demo1.lib
在这里插入图片描述
7、最后进行在usedll_demo1.cpp中进行调试

#include "pch.h"

#include <iostream>

using namespace std;

int main() {
	
	 cout<< MyAge::Instance()->getAge();

	return 0;
}

在这里插入图片描述


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值