1

Cocos2d -xのこの行「classCC_DLLCCSize 」のCC_DLLの仕様は何ですか。 cocos2d-xのすべてのクラスそのように定義します->class.....classname それは私にとって混乱を引き起こします。Plzは私を助けてくれます。

ありがとう、

4

2 に答える 2

2

これはおそらく、クラスをエクスポートまたはインポートするようにモジュールに指示するプリプロセッサ定義です。

何かのようなもの:

#ifdef BUILDING_COCOS
#define CC_DLL _declspec(dllexport)
#else
#define CC_DLL _declspec(dllimport)
#endif

ライブラリに対してリンクする場合、BUILDING_COCOSは定義されていないため、は、クラスがバイナリでエクスポートされることをコンパイラに通知するCC_DLLことを意味します。_declspec(dllimport)

于 2011-12-07T12:41:14.040 に答える
1

私はCC_DLL次のように定義されていると思います(MSVC組み込み構文を使用):

#ifdef CC_IS_IMPLEMENTATION /* or CC_IS_DLL_COMPILATION or something like that */
#define CC_DLL __declspec(dllexport)
#else
#define CC_DLL __declspec(dllimport)
#endif

これは、APIがユーザーによって使用されているか、実装自体によって使用されているかに基づいて、クラスをdllとの間でエクスポートまたはインポートする単一の定義を持つために行われます。実装(.cppファイル)は次のようになります。

// .cpp file
#define CC_IS_IMPLEMENTATION
// CC_DLL is now defined to __declspec(dllexport)
#include "myapi_stuff.h"

// implement it...

__declspec(dllimport)また、ライブラリ/ dllユーザーがそのAPI(クラス)を使用する場合、 dllから実装をインポートするように定義されます。

于 2011-12-07T12:44:36.247 に答える