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 专用