这种C++类声明意味着什么
What does this kind of C++ class declaration mean?
我下载了Ogre3D源代码,发现了这种类声明:
class _OgreExport TimeIndex
{ ...
我知道"TimeIndex"是类名,但是中间的"_OgreExport"是什么?CPP引用不包括这种类声明形式。这是什么?
_OgreExport
是一个预处理器指令,可扩展到
__declspec(dllimport)
当文件包含在其模块或之外时
__declspec(dllexport)
否则。在Windows下,您必须指定要导出/导入的类/方法,以便它们可以在二进制文件中使用。
正如詹姆斯在评论中指出的那样,从技术上讲,宏名称是非法的,因为它以下划线开头。这些名称是为实现保留的。
请参阅OgrePlatform.h:138 中的此代码
# if defined( OGRE_NONCLIENT_BUILD )
# define _OgreExport __declspec( dllexport )
# else
# if defined( __MINGW32__ )
# define _OgreExport
# else
# define _OgreExport __declspec( dllimport )
# endif
# endif
# define _OgrePrivate
# endif
如果你有进一步的此类问题,我强烈建议你使用谷歌代码搜索。只需输入,例如_OgreExport,然后查看其他人是如何使用它或如何定义它的。
这是一个扩展到类似__declspec(dllexport)
的宏,标记要由链接器导出的类。
相关文章:
- 这行代码在C++类中意味着什么
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- 生成文件"relink"意味着什么?
- 从二进制流中读取时,将双精度变量的地址转换为 char* 意味着什么?
- 在这种情况下,"typename..."意味着什么?
- "in-situ without memory allocation" 字符串的愚蠢实现意味着什么?
- 使用typedef有什么用,它意味着什么
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- 由于某种原因,我的代码中出现了 [json.exception.type_error.302]。我知道错误意味着什么,但我不知道哪里有故障
- 调用堆栈显示 SIGBUS,这意味着什么
- C++标准在[basic.scope.hiding]中"same scope"到底意味着什么?
- 评估对象的创建意味着什么?
- 当我们在 C++ 中说"initialize the object"时,它实际上意味着什么?
- C++这种结构"InterceptionKeyStroke &kstroke = * (InterceptionKeyStroke *) &stroke"意味着什么?
- 该语法在C 中意味着什么
- 链接标志对静态库意味着什么
- 由mpglib输出的"hip: Can't rewind stream by 74 bits"到底意味着什么?
- 这在 C# 中意味着什么以及如何使用它