VS2012でDirectX11プログラミング

まずはDirectXSDKの入手ですが、調べてみるとWindowsSDKというものにDirectXのSDKが含まれているようなので
http://msdn.microsoft.com/ja-jp/windows/hardware/hh852363.aspx
からダウンロードしてインストール。(Windows SDK for Windows 8)
Windows8用と書いてありますがWindows7でも動作して7用のプログラムもできるようです。

VS2012でWin32プロジェクトを新規作成
まずはヘッダファイルのincludeを試してみる。
#include “d3dx11.h” //以前作成したDX11のソースコードから
コンパイルすると「そんなファイルはない」とエラー発生。
インクルードパスの設定が必要なのか、それともSDKのインストールがおかしい?
こんなときはサンプルプログラムを、ということで
http://code.msdn.microsoft.com/windowsdesktop/Direct3D-Tutorial-Win32-829979ef
からダウンロードしてソースコードを見てみる。

#include “d3d11.h”
でした。どうやらDXSDK2010とはファイル名が変わっているみたい。
インクルードパスは、SDKインストール時点で設定されるらしい。とくに必要なし。

次に簡単なプログラム、DirectX11のデバイスを作成して削除するだけ
_tWinMainのメイン メッセージ ループの直前に挿入

	UINT createDeviceFlags = 0;
#ifdef _DEBUG
	createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
	D3D_FEATURE_LEVEL featureLevels[] =
	{
		D3D_FEATURE_LEVEL_11_0,//DirectX11のみ 10以降は無視
	};
	ID3D11Device* device;
	ID3D11DeviceContext* dv_ctx;
	D3D_FEATURE_LEVEL feature_level;
	HRESULT hr
		= D3D11CreateDevice(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL,
					createDeviceFlags,featureLevels, 1 ,D3D11_SDK_VERSION,
					&device, &feature_level, &dv_ctx);
	//デバイス作成に成功したらメッセージボックス表示
	if(SUCCEEDED(hr)){
		MessageBox(NULL, L"成功", L"DirectX11", MB_OK);

		dv_ctx->Release();
		device->Release();
	}

当然のようにリンクエラーがでるので
#pragma comment( lib, “d3d11.lib” )
を追加。コンパイル、リンク成功。
リンクのパス設定も不要でした。
できたプログラムを実行、デバイス作成成功のメッセージボックスが表示される。
準備完了。

簡単にVS2012でのDirectX11プログラミングの準備が終了しました。
・WindowsSDKをインストール
・DXSDK2010とはインクルードファイルが少し違う

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

認証:数字を入力してください(必須) * Time limit is exhausted. Please reload CAPTCHA.