当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《cpp文件中是否需要__declspec(dllexport)》经验,为你挑选了2个好方法。

可能是一个简单的问题,但我只有Linux来测试不需要__declspec(dllexport)的代码.在当前的代码中__declspec(dllexport)位于.h文件中的所有文件的前面,但就在cpp文件中50%的函数前面,所以我想知道它们是否真的需要在cpp文件中?



1> Doug T...:

不,它只需要在标题中.

这是一个包含更多信息的链接.

继续Vinay所说的话,我经常看到一个宏定义

#if defined(MODULENAME_IMPORT)
#define EXPORTED __declspec(dllimport)
#elif defined(MODULENAME_EXPORT)
#define EXPORTED __declspec(dllexport)
#endif

然后在你的标题中你做

void EXPORTED foo();

在执行导入/导出的项目的项目设置中相应地设置定义.



2> Vinay..:

不,在cpp文件中不需要它.只有在声明中才需要它.

例如,如果我有一个类CMyClass.如果我想导出这个,那么.h就会有

.h服务器代码

__declspec(dllexport)CMyClass {};

在客户端代码中,即使用此类,您必须将类声明为

客户代码

__declspec(dllimport)CMyClass;

//使用该类的代码

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有