转至https://blog.csdn.net/liuzubing/article/details/78607226
1、创建DLL工程
File -> New -> Project 选择Win32控制台应用程序,输入项目名称myDLL,选择DLL,Empty Project
2、编辑.h和.cpp文件,并生成DLL文件
新建createdll.h文件如下:
class __declspec(dllimport) CreateDLL
{
public:
int d;
void shuchu();
int add(int a,int b);
};
int __declspec(dllimport) c;
新建createdll.cpp文件如下:
#include "createdll.h"
#include "iostream"
using namespace std;
void CreateDLL::shuchu()
{
cout << "shenzhen" << endl;
}
int CreateDLL::add(int a, int b)
{
return a + b;
}
int c = 2;
然后编译整个工程后在Debug目录如下:
包含myDLL.dll和myDLL.lib,以及在该工程下还包括上述创建的两个文件。
特别注意:在.h文件中不可以对变量进行赋值,否则会报错,只能进行属性和方法的一些定义。
3、使用DLL文件
创建一个win32控制台应用程序空项目
3.1 隐式调用DLL
创建一个.cpp文件,先编译一次,将createdll.h和myDLL.lb文件拷贝到该工程目录下,并且将myDLL.dll文件拷贝到Debug或者release目录下;
(1)方法1:在项目中,属性->连接器->输入->附加依赖项中,添加myDLL.lib,编辑.cpp文件如下所示:
#include<iostream>
using namespace std;
#include "createdll.h"
int main()
{
CreateDLL createopencldll;
createopencldll.d = 23;
cout << createopencldll.d << endl;
cout << createopencldll.add(2,9) <<endl;
createopencldll.shuchu();
cout << "c=" << c << endl;
return 0;
}
(2)方法2:不用添加附加依赖项方法:
#pragma comment(lib, "myDLL.lib")
#include<iostream>
using namespace std;
#include "createdll.h"
int main()
{
CreateDLL createopencldll;
createopencldll.d = 23;
cout << createopencldll.d << endl;
cout << createopencldll.add(2,9) <<endl;
createopencldll.shuchu();
cout << "c=" << c << endl;
return 0;
}
3.2 显式调用
该方法自主参考网络,较为复杂不作讲解