dllexport、dllimport

Microsoft 专用

dllexport 和 dllimport 存储类特性是 C 和 C++ 语言的 Microsoft 专用扩展。 可以使用它们从 DLL 中导出或向其中导入函数、数据和对象。

__declspec( dllimport ) declarator 
__declspec( dllexport ) declarator

备注

这些特性显式定义 DLL 到其客户端的接口,可以是可执行文件或另一个 DLL。 将函数声明为 dllexport 可消除对模块定义 (.def) 文件的需要,至少在有关导出函数的规范方面。 dllexport 特性可替换 __export 关键字。

如果将类标记为 declspec(dllexport),则类层次结构中类模板的任何专用化都将隐式标记为 declspec(dllexport)。 这意味着类模板将进行显式实例化,且必须定义类的成员。

函数的 dllexport 使用其修饰名公开该函数。 对于 C++ 函数,这包括名称重整。 对于 C 函数或声明为 extern“C”的函数,这包括基于调用约定的平台特定的修饰。 如果您不需要名称修饰,请使用 .def 文件(EXPORTS 关键字)。

在声明 dllexport 或 dllimport 时,您必须使用扩展特性语法和 __declspec 关键字。

示例

// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();

或者,若要提高代码的可读性,可以使用宏定义:

#define DllImport   __declspec( dllimport )
#define DllExport   __declspec( dllexport )

DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;

有关详细信息,请参阅:

结束 Microsoft 专用

请参见

参考

__declspec

C++ 关键字