2009-08-31から1日間の記事一覧

引数有りコンストラクタを持つクラスを仮想継承する際の注意

ロベールのC++入門講座 13-04引数有りのコンストラクタを持つクラスを仮想継承し、それを多重継承した場合のお話です。以下の例を見てみましょう。 #include <iostream> using std::cout; using std::endl; class CBase { public: CBase (int num) { m_num = num; } in</iostream>…

IDirect3DDevice9オブジェクトの生成のリトライ

HRESULT hr; hr = lpd3d->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, // ハードウェア処理 hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING // HW頂点処理 &d3dpp, &lpD3ddev ); その1 初期化なんて怖くないぜ! これでデバイスの作成ができます。ただ…

基本的に初めにZeroMemory等で初期化した方が無難?

その1 初期化なんて怖くないぜ!ここを見ながら色々試してるのですが D3DPRESENT_PARAMETERS d3dpp; d3dpp.BackBufferWidth = 640; d3dpp.BackBufferHeight = 480; d3dpp.BackBufferCount = 1; d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE; d3dpp.MultiSa…

DirectXのReleaseメソッド

DirectX関連のクラスには大抵Releaseメソッドなるものが存在していて、オブジェクトの破棄をする際に呼ばないといけないようです。そこで処理を簡略化するためによくSAFE_RELEASEというような名前のマクロを用意すると便利らしいです。 #define SAFE_RELEASE…

ライブラリの追加

さてインストールも終わって色々サイトとか見ながら触ってたんですがDirectX3Dの初期化でいきなり躓く。 error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 "public: bool __thiscall DXClass::Init(void)" (?Init@DXClass@@QAE_NXZ) で参照さ…

クロスキャスト

ロベールのC++入門講座 13-08例えば以下のような多重継承の関係のクラスがあるとします。 class CBaseA { public: virtual ~CBaseA() {} }; class CBaseB { public: virtual ~CBaseB() {} }; class CSample : public CBaseA, public CBaseB {}; この状態でCB…