使用 __declspec(dllimport) 导入到应用程序中

使用由 DLL 定义的公共符号的程序会导入它们。 在为使用 DLL 生成的应用程序创建头文件时,请在公共符号的声明中使用 __declspec(dllimport)。 无论使用 .def 文件还是 __declspec(dllexport) 关键字进行导出,都可以使用关键字 __declspec(dllimport)

为了提高代码的可读性,请为 __declspec(dllimport) 定义宏,并使用此宏来声明导入的每个符号:

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

虽然在函数声明中使用 __declspec(dllimport) 是可选的,但如果你使用此关键字,编译器会生成更高效的代码。 不过,必须对导入的可执行文件使用 __declspec(dllimport),以访问 DLL 的公共数据符号和对象。 请注意,DLL 的用户仍需要与导入库链接。

可以对 DLL 和客户端应用程序使用相同的头文件。 为此,请使用特殊的预处理器符号来指示是生成 DLL 还是生成客户端应用程序。 例如:

#ifdef _EXPORTING
   #define CLASS_DECLSPEC    __declspec(dllexport)
#else
   #define CLASS_DECLSPEC    __declspec(dllimport)
#endif

class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };

你希望做什么?

你想进一步了解什么?

另请参阅

导入到应用程序中