Cocos2d -xのこの行「classCC_DLLCCSize 」のCC_DLLの仕様は何ですか。
cocos2d-xのすべてのクラスそのように定義します->class.....classname
それは私にとって混乱を引き起こします。Plzは私を助けてくれます。
ありがとう、
Cocos2d -xのこの行「classCC_DLLCCSize 」のCC_DLLの仕様は何ですか。
cocos2d-xのすべてのクラスそのように定義します->class.....classname
それは私にとって混乱を引き起こします。Plzは私を助けてくれます。
ありがとう、
これはおそらく、クラスをエクスポートまたはインポートするようにモジュールに指示するプリプロセッサ定義です。
何かのようなもの:
#ifdef BUILDING_COCOS
#define CC_DLL _declspec(dllexport)
#else
#define CC_DLL _declspec(dllimport)
#endif
ライブラリに対してリンクする場合、BUILDING_COCOS
は定義されていないため、は、クラスがバイナリでエクスポートされることをコンパイラに通知するCC_DLL
ことを意味します。_declspec(dllimport)
私は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から実装をインポートするように定義されます。