我下载了Ogre3D源代码,发现了这种类声明:

class _OgreExport TimeIndex
{ ...

我知道“TimeIndex”是类名,但是中间的“_OgreExport”是什么? CPP引用不包括这种类声明形式。这是什么?

最佳答案

_OgreExport是预处理器指令,可扩展为

__declspec(dllimport)

文件包含在其模块之外时
__declspec(dllexport)

除此以外。在Windows下,您必须指定要导出/导入的类/方法,以便可以在二进制文件中使用它们。

从技术上讲,正如James在评论中指出的那样,宏名称是非法的,因为它以下划线开头。这些名称是为实现保留的。

07-26 09:34