c++ - cpp 文件中是否需要 __declspec(dllexport)

标签 c++ windows dll

可能是一个简单的问题,但我只有 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/

相关文章:

C:截图

php - windows - php_memcache.dll - 适用于 PHP 5.4

c# - 如何在 C# 中访问 dll 构建日期时间

c++ - 一种使用boost和c++列出目录和子目录下所有文件的方法

c++ - 如何正确实现自定义迭代器和 const_iterators?

c++ - 在 C++ 中编写 for/else 的简洁方法?

windows - 如何检查Windows驱动程序是否有EV证书?

c++ - 从 .exe 文件中提取 .bmp

java - 使用 System.loadLibrary 加载 Python C 扩展 DLL

c++ - 将 DLL 作为 exe 启动