【DirectX 2D游戏编程基础】DirectX环境的搭建

本文介绍了如何搭建DirectX 2D游戏编程环境,包括创建Win32窗口、初始化DirectX接口和设备,以及创建精灵指针。在过程中,详细解释了utility.h中用于安全释放的函数模板。遇到的VS导入d3dx9.h报错问题,解决方案是安装DirectX SDK并设置VS项目属性。此外,还解决了propidl.h中出现的编译错误。最终,成功创建了一个可以渲染3D图形的基础窗口。
摘要由CSDN通过智能技术生成
        首先,我们先回顾下我上个博客,关于手动建立一个win32 窗口的博客,在这里,我再写一遍昨天的代码,并且在这里面加几个函数,关于windows窗口的建立这部分代码,注释我就不写了,只是为了展示我的几个函数所加的位置
        本博客实例代码地址:http://download.csdn.net/detail/shangdi712/9052045
utility.h

//-------Windows头及库文件-------
#ifndef WINDOWS_PLATFORM_
#define WINDOWS_PLATFORM_

#include <Windows.h>
#include <mmsystem.h>
#pragma comment(lib,"Winmm.lib")

#endif

//-------D3D头及库文件-------
#ifndef D3D_USEFUL_H_
#define D3D_USEFUL_H_

#include <d3d9.h>
#pragma comment(lib,"d3d9.lib")
#include <d3dx9.h>
#pragma comment(lib,"d3dx9.lib")

#endif

//-------SAFE_DELETE_----------
#ifndef SAFE_DELETE_T_
#define SAFE_DELETE_T_

template<typename T>inline void Safe_Delete(T* &  p)
{
	if (p){ delete p; p = nullptr; }
}

template<typename T>inline void Safe_Release(T* & p)
{
	if (p){ p->Release(); p = nullptr; }
}

#endif

      这里稍微解释一下utility.h的代码,开始先引入window.h mmsystem.h两个头文件,和Winmm.lib 这个库的作用是为了生成windows窗口所用
      之后引入directx 所需要的库和头文件
      好了,重点来了,后面两个函数模板的作用是用来安全释放的,前一个用来释放普通指针,后一个用来释放directx定义的复杂指针,将安全释放的函数写成模板,之后随调随用,增强了代码的简洁性
      好了,下面就是WinMain中的内容了
     
#include "Utility.h"

HWND g_hWnd = 0;
HINSTANCE g_hInstance = 0;

/*
绘图窗口改造的步骤:
1、包含头文件及库文件,见Utility.h文件
2、声明变量
3、创建D3D接口指针
4、创建D3D设备指针
5、创建Sprite精灵指针
6、改造onRender函数
*/

//COM:组件对象模型

LPDIRECT3D9 g_pD3D = nullptr;			//D3D的接口指针,为了创建设备指针
LPDIRECT3DDEVICE9 g_pDevice = nullptr;	//D3D的设备指针,为了创建精灵指针
LPD3DXSPRITE g_pSprite = nullptr;		//D3D的精灵指针,为了画图


LRESULT CALLBACK
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值