學習筆記一:關於directx sdk的安裝於一些概念
阿新 • • 發佈:2018-11-14
關於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的窗體了,至此,開發環境就搭好了。