我正在寻找有关__declspec(dllexport)的信息,我是否正确理解此方法允许您从 .dll 的某处调用函数?
例如,在 .dll 中有一个void print()
输出某些东西的函数。
如果我打电话给自己,__declspec(dllexport) void print()
那么这个功能对我有用并为我输出类似的东西吗?
我正在寻找有关__declspec(dllexport)的信息,我是否正确理解此方法允许您从 .dll 的某处调用函数?
例如,在 .dll 中有一个void print()
输出某些东西的函数。
如果我打电话给自己,__declspec(dllexport) void print()
那么这个功能对我有用并为我输出类似的东西吗?
__declspec(dllexport)
表示该函数是从 Dll 导出的。__declspec(dllimport)
表示该函数是从 Dll 导入的。编译 Dll 时,导出函数和类必须标记为__declspec(dllexport)
. 当使用 Dll 在项目中编译头文件(h 文件)时,必须将相同的函数和类标记为__declspec(dllimport)
.这通常通过以下方式完成。一个 Dll 项目定义了一个预处理器符号,例如
MYDLL_EXPORTS
. 函数定义如下:编译时,Dll
my_function
被定义为__declspec(dllexport)
因为符号MYDLL_EXPORTS
是在 Dll 项目中定义的。在使用 Dll 的项目中,相同的功能被定义为__declspec(dllimport)
.