使用Visual Studio建立新的library項目,就可以知道怎么做了。
頭文件:
// 下列 ifdef 塊是創(chuàng)建使從 DLL 導出更簡單的
// 宏的標準方法。此 DLL 中的所有文件都是用命令行上定義的 PROJECT1_EXPORT
// 符號編譯的。在使用此 DLL 的
// 任何其他項目上不應定義此符號。這樣,源文件中包含此文件的任何其他項目都會將
// PROJECT1_API 函數(shù)視為自 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 應用程序的導出函數(shù)。
//
#include "stdafx.h"
#include "Project1.h"
// 這是導出變量的一個示例
PROJECT1_API int nProject1=0;
// 這是導出函數(shù)的一個示例。
PROJECT1_API int fnProject1(void)
{
return 42;
}
// 這是已導出類的構造函數(shù)。
// 有關類定義的信息,請參閱 Project1.h
CProject1::CProject1()
{
return;
}
Exporting C++ from dlls寫的也很不錯。