1. 程式人生 > >學習筆記一:關於directx sdk的安裝於一些概念

學習筆記一:關於directx sdk的安裝於一些概念

關於directx sdk開發環境的安裝:


在百度搜索了directx sdk,進入了微軟的官網,下載了DXSDK_Jun10.exe

百度網盤:http://pan.baidu.com/s/1o6r3MDO

下載安裝就可以了

VC++開發用的是VS2010


新建VS2010工程:win32專案,空專案




建立了空的win32專案後,首先要進行directx開發環境的設定

首先右鍵-工程-屬性,在彈出的工程屬性中選擇VC++目錄


這裡要設定的是 包含目錄 和 庫目錄


包含目錄:D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include

庫目錄:D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86


設定好了,新建一個main.cpp檔案,是程式的入口檔案

首先要包含幾個標頭檔案和幾個庫檔案


#include <d3d9.h>
#include <d3dx9.h>
#include <tchar.h>

#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")

然後就是搭建windows訊息迴圈視窗了:

#include <d3d9.h>
#include <d3dx9.h>
#include <tchar.h>

#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")


#define WINDOW_WIDTH 800					// 寬
#define WINDOW_HEIGHT 600					// 高
#define WINDOW_TITLE L"你好,windows!"		// 標題

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);	// 窗體過程函式

// 程式入口 [10/17/2014 Administrator]
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd)
{
	// 窗體建立step-1/4:窗體類設計
	WNDCLASSEX wndClass = {0};
	wndClass.cbSize = sizeof(WNDCLASSEX) ;
	wndClass.style = CS_HREDRAW | CS_VREDRAW;
	wndClass.lpfnWndProc = WndProc;
	wndClass.cbClsExtra = 0;
	wndClass.cbWndExtra = 0;
	wndClass.hInstance = hInstance;
	wndClass.hIcon = (HICON)::LoadImage(NULL,L"icon.ico",IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
	wndClass.hCursor = LoadCursor( NULL, IDC_ARROW );
	wndClass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
	wndClass.lpszMenuName = NULL;
	wndClass.lpszClassName = L"myClassName";

	// 窗體建立step-2/4:窗體類註冊
	if(!RegisterClassEx(&wndClass))
		return -1;		

	// 窗體建立step-3/4:建立窗體得到控制代碼
	HWND hwnd = CreateWindow( L"myClassName", WINDOW_TITLE, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL);

	// 窗體建立step-4/4:顯示窗體
	MoveWindow(hwnd,250,80,WINDOW_WIDTH,WINDOW_HEIGHT,true);
	ShowWindow( hwnd, nShowCmd );
	UpdateWindow(hwnd);



	// 訊息迴圈
	MSG msg = { 0 };
	while( msg.message != WM_QUIT )			
	{
		if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) )  
		{
			TranslateMessage( &msg );
			DispatchMessage( &msg );
		}
		else
		{
			// 遊戲邏輯更新和畫面渲染工作
		}
	}

	UnregisterClass(L"myClassName", wndClass.hInstance);

	return 0;
}

// 訊息處理函式
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)      
{
	switch (message)
	{
	case WM_PAINT:
		ValidateRect(hwnd, NULL);
		break;

	case WM_KEYDOWN:
		if (wParam == VK_ESCAPE)
			DestroyWindow(hwnd);
		break;

	case WM_DESTROY:
		PostQuitMessage(0);
		break;

	default:
		return DefWindowProc(hwnd, message, wParam, lParam);
	}

	return 0;
}

窗體建立完成了,執行一下,就會出現一個800*600的窗體了,至此,開發環境就搭好了。