我们要先要去下载DirectXSDK ,不然接下来的工作没法进行。
我们打开这个网址
http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
安装就行了,如果出现错误
Error Code:S1023
这个原因是因为你安装了新版本的Microsoft Visual C++2010 x86 Redistributable
SDK是1010.0.30319版本比这个高就会出错
解决方法:
卸载所有的Microsoft Visual C++2010 x86 Redistributable,重新安装就可以解决。
然后打开VS
创建C++空项目
把下面的代码粘贴进去(基本的Window编程知识,不懂的小伙伴可以补习一下)
#include <iostream>
#include <windows.h>
//定义窗口的大小
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
//过程回调函数
LRESULT CALLBACK WinPro(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
//WinMain主函数
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE proInstance,LPSTR cmdLine,int nShowType)
{
//窗口类
WNDCLASSEX wnd = { 0 };
wnd.cbSize = sizeof(WNDCLASSEX);
wnd.hInstance = hInstance;
wnd.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wnd.hCursor = LoadCursor(hInstance,nullptr);
wnd.hIcon = LoadIcon(hInstance, nullptr);
wnd.style = CS_VREDRAW | CS_HREDRAW;
wnd.lpfnWndProc = WinPro;
wnd.lpszClassName = "MyGame";
wnd.cbWndExtra = 0;
wnd.cbClsExtra = 0;
wnd.lpszMenuName = nullptr;
//注册窗口类
if (!RegisterClassEx(&wnd))
{
MessageBox(nullptr,"窗口类注册失败","提示",0);
return -1;
}
//创建窗口
HWND hwnd = CreateWindow("MyGame", "CSDN", WS_OVERLAPPEDWINDOW, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, nullptr, nullptr, hInstance, nullptr);
if (hwnd==nullptr)
{
MessageBox(nullptr, "窗口创建失败", "提示", 0);
return -1;
}
ShowWindow(hwnd, SW_SHOW);
//消息队列
MSG msg = {0};
while (msg.message!=WM_QUIT)
{
if (PeekMessage(&msg,0,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
//注销窗口类
UnregisterClass("MyGame", hInstance);
return 0;
}
LRESULT CALLBACK WinPro(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
//窗口关闭事件
case WM_DESTROY:
scene.CleanUp(hwnd);
PostQuitMessage(0);
break;
//窗口绘制事件
case WM_PAINT:
scene.Render(hwnd);
//更新客户端区
ValidateRect(hwnd, nullptr);
default:
//不加这个 窗口显示不出来
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
出现窗口就算是成功了,明天我们进行DX的初始化工作