gpt4 book ai didi

c++ - 使用 __declspec(dllexport)

转载 作者:行者123 更新时间:2023-12-02 10:24:31 25 4
gpt4 key购买 nike

您好,我对 dllexport 有点困惑。例如,当我在类里面使用 __declspec( dllexport ) 时

 #define DllExport   __declspec( dllexport )  
class DllExport C {
int i;
virtual int func( void ) { return 1; }
};

我是将 C 类导出到 dll 文件还是从 dll 文件导出 C 类?

最佳答案

编译 DLL 时,您必须像以前那样编写 __declspec(dllexport)。这告诉编译器你希望它被导出。使用 DLL 时,您需要在包含的文件中使用 __declspec(dllimport)。然后编译器知道这个函数和类在一个 DLL 文件中并且需要被导入。因为你不想改变你的头文件太多,你应该定义一个宏,例如BUILD_DLL

    #ifdef BUILD_DLL
#define DLL_PORTING __declspec(dllexport)
#else
#define DLL_PORTING __declspec(dllimport)
#endif

现在你在example.h中写:

    class DLL_PORTING example_class { … };

在您的 .exe 文件中,只需包含您需要的头文件,一切都会正常进行。

关于c++ - 使用 __declspec(dllexport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48977138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com