VS2017上的DLL文件的使用

创建一个Win32控制台程序项目(动态链接库)

1、文件->新建项目,弹出新建项目对话框,选择已安装->Windows桌面->Windows桌面向导程序
在这里插入图片描述

2、弹出Windows桌面项目对话框,应用程序类型选择:控制台应用程序->动态链接库
在这里插入图片描述
点确定

3.然后我们在头文件下创建一个头文件这里我们是DLL1.h,输入如下代码:

#ifdef CREATEDELL_API_DU
#else                                                                            
#define CREATEDELL_API_DU _declspec(dllimport) //当编译时,头文件不参加编译,所以.cpp文件中先定义,后头文件被包含进来,因此外部使用时,为dllexport,而在内部编译时,则为dllimport
#endif                                         
 
class CREATEDELL_API_DU animal              //需要被外界调用的类(父类)
{
public:
	virtual int outDate() = 0;                 //纯虚函数
	void getWide(int x);	
	void getHigh(int y);
 
protected:
	int wide;
	int high;
};
 
                                                
class CREATEDELL_API_DU cat:public animal      //需要被调用的类(子类cat)
{
public:
	int outDate();
};
 
 
class  CREATEDELL_API_DU dog :public animal     //需要被调用的类(子类dog)
{
public:
	int outDate();
};
 
int CREATEDELL_API_DU exportDate();             //需要被调用的函数(单独的一个函数,不属于任何一个类)
 

4、在源文件下创建源文件,这里名字为DLL1.cpp,并插入以下代码:

 
#define CREATEDELL_API_DU _declspec(dllexport)
 
#include <iostream>
#include "DLL1.h"
using namespace std;
//父类中函数实现 
void animal::getWide(int x) {
     wide = x;
}
void CREATEDELL_API_DU animal::getHigh(int y){
     high = y;
}//子类cat中数据输出实现
int CREATEDELL_API_DU cat::outDate(){
     return (wide + high);wide += wide;high += high;
}//子类dog数据输出实现
int CREATEDELL_API_DU dog::outDate(){
     return (wide - high);
}//函数的实现
int CREATEDELL_API_DU exportDate(){
     return 666;
}

5、点击生成,.当生成完之后,我们便可以在项目文件夹下的Debug文件夹中看到DLL1.dll与DLL1.lib,并且在项目文件夹下的DLL1中看到DLL1.cpp

创建一个Win32控制台程序项目(应用程序)

1、

在这里插入图片描述
在这里插入图片描述

注意:不要勾选预编译标头,否则会出错

2、把上面工程里的.lib .dll .h 添加到该项目文件下

3、在源文件中新建一个新的源文件,这里为test.cpp,并添加如下代码:

#include<iostream>
//#include"test.h",不知这个头文件怎么生成的
#include"DLL1.h"
using namespace std;
bool main()
{
	
	cout << exportDate()<<endl;          //调用函数输出666   
 
 
	dog dog;     //实例化dog对象、赋值、并输出。
	dog.getHigh(5);
	dog.getWide(6);
	cout << dog.outDate() << endl;
 
	cat cat;    //实例化cat对象、赋值、并输出
	cat.getHigh(16);
	cat.getWide(4);
	cout << cat.outDate()<< endl;
	
	
 
 
	getchar();          //让程序处于等待输入状态下,而不是一闪而过
	return 0;
}

4、点击编译,运行(ctrl+f5),得到如下结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值