我的小程序:
编写dll
VS创建项目,项目类型选:动态链接库(DLL)
项目结构:
头文件中,framework.h不动,编辑pch.h。
pch.h:
#ifndef PCH_H
#define PCH_H
// 添加要在此处预编译的标头
#include "framework.h"
#endif //PCH_H
extern "C"
{
_declspec(dllexport) int myAdd(int n, int m);
_declspec(dllexport) int mySub(int n, int m);
};
源文件中,dllmain.cpp不动,编辑pch.cpp。
pch.cpp:
#include "pch.h"
// 当使用预编译的头时,需要使用此源文件,编译才能成功。
#include<iostream>
using namespace std;
int myAdd(int n, int m)
{
return n + m;
}
int mySub(int n, int m)
{
return n - m;
}
编译生成dll:
生成->编译,因为我是 Debug 模式下编译的,所以生成的 dll 在项目的 Debug 文件夹下:
调用dll
VS创建项目,项目类型选:控制台应用
项目结构:
准备工作:
1、 在此项目文件夹下放入上个项目(Dll1
)的以下四个文件:
2、 设置添加依赖项
右击项目,选择属性
编辑附加依赖项:
输入生成库的名字,确定
源文件中,ConsoleApplication1.cpp:
#include <iostream>
#include"pch.h"
using namespace std;
int main()
{
std::cout << "Hello World!\n";
int a = myAdd(5, 4);
cout << a << endl;
int b = mySub(5, 4);
cout << b << endl;
return 0;
}
运行成功!如下图: