アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。

ただいま、C++言語の猛勉強中です。
デザインパターンのシングルトンでDirectX9インターフェイスを作成したところ、
以下のエラーが出ました。

Interface.obj : error LNK2001: 外部シンボル ""private: static class Dx9Interface * Dx9IFMgr::Dx9" (?Dx9@Dx9IFMgr@@0PAVDx9Interface@@A)" は未解決です。
Debug/png_test.exe : fatal error LNK1120: 外部参照 1 が未解決です。

ソースは以下です。

// ヘッダー
//----------------------------------------------------------
class Dx9Interface
{
public:

Dx9Interface();

bool InitDx9(HWND hWnd_);

IDirect3D9* GetD3D();

IDirect3DDevice9* GetD3DDevice();

virtual ~Dx9Interface();

private:
HWND hWnd;
HINSTANCE hInstance;

IDirect3D9* pD3D;
IDirect3DDevice9* pD3DDevice;
D3DPRESENT_PARAMETERS d3dpp;
D3DDISPLAYMODE d3dmode;

bool initialize; // 初期化したか
};

// Dx9インターフェイスクラスをシングルトンで作成するクラス
//----------------------------------------------------------
class Dx9IFMgr
{
public:
// インスタンスの作成
static Dx9Interface* CreteDx9();

// インスタンスの削除
static void DelDx9();

private:

// インスタンス
static Dx9Interface* Dx9;

Dx9IFMgr(){};

};

ソースは、次に追記します。

A 回答 (1件)

多分、staticメンバ変数の実体が宣言されてないじゃないでしょうか。



Dx9Interface* Dx9IFMgr::Dx9 = NULL;
を.cppの方へ追加すれば良いと思います。
    • good
    • 0
この回答へのお礼

なるほど、実態も定義しなきゃいけないのですね。
助かりました、ありがとうございます。

お礼日時:2005/08/30 13:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!