Error Code:S1023

我们要先要去下载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的初始化工作

猜你喜欢

转载自blog.csdn.net/qq_19003345/article/details/79885286