掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
コンストラクタでのオブジェクト生成(C++6.0,DirectX9) (ID:61045)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
C++6.0でDirectX9のフォント表示機能をまとめた自作クラスを作りたいのですが D3DXCreateFontでオブジェクトを作成する工程を、自作クラスのコンストラクタで 済ませてしまいたいと思ったのですが上手く行きません。 メンバ関数としてD3DXCreateFontを行った場合は成功するのですが 何故コンストラクタで行うとエラーとなるのかが分かりません。 原因と対処方法の分かる方居られましたらご教授お願い致します。 以下コードです。(一部割愛 // クラスの宣言(h class cMsgCls { public: cMsgCls(); // コンストラクタ void cMsgCls_Init(); // 同じ内容のメンバ関数 protected: // メンバ変数 LPD3DXFONT FontObj; // 対象オブジェクト }; // コンストラクタ(cpp cMsgCls::cMsgCls() { HRESULT hr; hr = D3DXCreateFont( lpD3ddev, // LPDIRECT3DDEVICE9 24, NULL, FW_DONTCARE, NULL, FALSE, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "MS ゴシック", &FontObj // 対象オブジェクト ); // エラー判定 if (FAILED(hr)) { // ここで(D3DXERR_INVALIDDATA:データが無効)が帰って来る。 } } // 上記のコンストラクタと同じ内容のメンバ関数 void cMsgCls::cMsgCls_Init() { // コンストラクタと同じ内容 } cMsgCls cMsgClsObj; と、宣言するとコンストラクタでエラー。 コンストラクタの内容をコメントアウトして cMsgCls.cMsgCls_Init(); を行うと成功。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.