使用Visual Studio建立新的library项目,就可以知道怎么做了。
头文件:
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 PROJECT1_EXPORT
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// PROJECT1_API 函数视为自 DLL 导入,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef PROJECT1_EXPORTS
#define PROJECT1_API __declspec(dllexport)
#else
#define PROJECT1_API __declspec(dllimport)
#endif
// 此类导出自 Project1.dll
class PROJECT1_API CProject1 {
public:
CProject1(void);
// TODO: 在此添加您的方法。
};
extern PROJECT1_API int nProject1;
PROJECT1_API int fnProject1(void);
源文件:
// Project1.cpp: 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include "Project1.h"
// 这是导出变量的一个示例
PROJECT1_API int nProject1=0;
// 这是导出函数的一个示例。
PROJECT1_API int fnProject1(void)
{
return 42;
}
// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 Project1.h
CProject1::CProject1()
{
return;
}
Exporting C++ from dlls写的也很不错。