可能是一个简单的问题,但我只有 Linux 可以在不需要 __declspec(dllexport) 的地方测试这段代码。在当前代码中,__declspec(dllexport) 位于 .h 文件中的所有文件之前,但仅位于 cpp 文件中大约 50% 的函数之前,所以我想知道 cpp 文件中是否真的需要它们?
最佳答案
不需要,它只需要在标题中。
这是一个 link更多信息。
扩展 Vinay 所说的,我经常看到定义的宏
#if defined(MODULENAME_IMPORT)
#define EXPORTED __declspec(dllimport)
#elif defined(MODULENAME_EXPORT)
#define EXPORTED __declspec(dllexport)
#endif
然后在你的标题中做
void EXPORTED foo();
在执行导入/导出的项目的项目设置中相应地设置定义。
关于c++ - cpp 文件中是否需要 __declspec(dllexport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/557317/