1、创建新项目,选择如下
2、工程目录结构如下
3、编写pch.h文件,内容如下
// pch.h: 这是预编译标头文件。
// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
#ifndef PCH_H
#define PCH_H
// 添加要在此处预编译的标头
#include "framework.h"
#ifdef MYCPP_EXPORTS
#define DLLAPI __declspec(dllexport)
#else
#define DLLAPI __declspec(dllimport)
#endif
extern int DLLAPI g_value;
class DLLAPI SimpleClass {
public:
SimpleClass();
~SimpleClass();
int getValue() const;
};
extern "C"
{
DLLAPI int myAdd(int a, int b);
DLLAPI int myMinus(int a, int b);
DLLAPI int myMultipy(int a, int b);
DLLAPI double myDevide(int a, int b);
}
#endif //PCH_H
4、编写pch.cpp文件,内容如下
// pch.cpp: 与预编译标头对应的源文件
#include "pch.h"
// 当使用预编译的头时,需要使用此源文件,编译才能成功。
int g_value = 100;
SimpleClass::SimpleClass()
{
}
SimpleClass::~SimpleClass()
{
}
int SimpleClass::getValue() const
{
return g_value;
}
int myAdd(int a, int b) {
return a + b;
}
int myMinus(int a, int b) {
return a - b;
}
int myMultipy(int a, int b) {
return a * b;
}
double myDevide(int a, int b) {
double m = (double)a / b;
return m;
}
5、生成动态库
点击 生成->生成解决方案 即可,注意这里解决平台是Debug x64,后面调用的时候也必须和这个平台一致,不然会报错。你也可以使用release,只要做到前后一致即可。
生成的mycpp.dll和mycpp.lib保存在${projectName}/x64/Debug目录下,如果你选择的其他release平台或者x86,就保存在相应的目录下。