簡體   English   中英

這種C ++類聲明是什么意思?

[英]What does this kind of C++ class declaration mean?

我下載了Ogre3D源代碼,並發現了這種類聲明:

class _OgreExport TimeIndex
{ ...

我知道“ TimeIndex”是類名,但是中間的“ _OgreExport”是什么? CPP參考不包括此類的類聲明形式。 這是什么?

_OgreExport是一個預處理器指令,可擴展為

__declspec(dllimport)

文件包含在其模塊之外時

__declspec(dllexport)

除此以外。 在Windows下,您必須指定要導出/導入的類/方法,以便可以在二進制文件中使用它們。

從技術上講,正如James在評論中指出的那樣,宏名稱是非法的,因為它以下划線開頭。 這些名稱是為實現保留的。

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

如果您還有其他此類問題,我強烈建議您使用Google代碼搜索 只需輸入_OgreExport,然后查看其他人如何使用它或如何對其進行定義。

它是一個宏,它擴展為__declspec(dllexport)之類的東西,標記要由鏈接器導出的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM