原帖:http://blog.csdn.net/jxusthusiwen/article/details/6518499
一.VS2008中DirectX 9.0的配置方法
1. 在VS2008里面选择: ”工具”-->”选项”-->”项目和解决方案”-->”vc++目录”
2. 在”显示以下内容的目录”下的下拉框中选择"包含文件"中插入新行输入
选择“E:/Include”
3.在”显示以下内容的目录”下的下拉框中选择”库文件”插入新行并输入
”E:/Lib/x86”
( 没有双引号,具体看你的DirectX安装目录)
二.测试程序:
1. 平台:windows 7 direct9.0 VS2008
2. 打开 vs2008 选择新建项目 ->win32项目 ,输入项目名,选择空项目。
向“源文件”添加文件main.cpp
输入以下代码:
-
#include<d3d9.h>
-
-
#include <tchar.h>
-
-
#pragma comment(lib, "d3d9.lib")
-
#pragma comment(lib, "d3dx9.lib")
-
-
#define WINDOW_CLASS _T("UGPDX")
-
#define WINDOW_NAME _T("Blank D3D Window")
-
-
-
-
bool
InitializeD3D(
HWND
hWnd,
bool
fullscreen);
-
void
RenderScene();
-
void
Shutdown();
-
-
-
-
LPDIRECT3D9 g_D3D = NULL;
-
LPDIRECT3DDEVICE9 g_D3DDevice = NULL;
-
-
-
LRESULT
WINAPI MsgProc(
HWND
hWnd,
UINT
msg,
WPARAM
wParam,
LPARAM
lParam)
-
{
-
switch
(msg)
-
{
-
case
WM_DESTROY:
-
PostQuitMessage(0);
-
return
0;
-
break
;
-
-
case
WM_KEYUP:
-
if
(wParam == VK_ESCAPE) PostQuitMessage(0);
-
break
;
-
}
-
-
return
DefWindowProc(hWnd, msg, wParam, lParam);
-
}
-
-
-
int
WINAPI WinMain(
HINSTANCE
hInst,
HINSTANCE
prevhInst,
LPSTR
cmdLine,
int
show)
-
{
-
-
WNDCLASSEX wc = {
sizeof
(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
-
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
-
WINDOW_CLASS, NULL };
-
RegisterClassEx(&wc);
-
-
-
HWND
hWnd = CreateWindow(WINDOW_CLASS, WINDOW_NAME, WS_OVERLAPPEDWINDOW,
-
100, 100, 640, 480, GetDesktopWindow(), NULL,
-
wc.hInstance, NULL);
-
-
-
if
(InitializeD3D(hWnd,
false
))
-
{
-
-
ShowWindow(hWnd, SW_SHOWDEFAULT);
-
UpdateWindow(hWnd);
-
-
-
MSG msg;
-
ZeroMemory(&msg,
sizeof
(msg));
-
-
while
(msg.message != WM_QUIT)
-
{
-
if
(PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
-
{
-
TranslateMessage(&msg);
-
DispatchMessage(&msg);
-
}
-
else
-
RenderScene();
-
}
-
}
-
-
-
Shutdown();
-
-
-
UnregisterClass(WINDOW_CLASS, wc.hInstance);
-
return
0;
-
}
-
-
-
bool
InitializeD3D(
HWND
hWnd,
bool
fullscreen)
-
{
-
D3DDISPLAYMODE displayMode;
-
-
-
g_D3D = Direct3DCreate9(D3D_SDK_VERSION);
-
if
(g_D3D == NULL)
return
false
;
-
-
-
if
(FAILED(g_D3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &displayMode)))
-
return
false
;
-
-
-
D3DPRESENT_PARAMETERS d3dpp;
-
ZeroMemory(&d3dpp,
sizeof
(d3dpp));
-
-
if
(fullscreen)
-
{
-
d3dpp.Windowed = FALSE;
-
d3dpp.BackBufferWidth = 640;
-
d3dpp.BackBufferHeight = 480;
-
}
-
else
-
d3dpp.Windowed = TRUE;
-
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
-
d3dpp.BackBufferFormat = displayMode.Format;
-
-
-
if
(FAILED(g_D3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
-
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_D3DDevice)))
-
{
-
return
false
;
-
}
-
-
return
true
;
-
}
-
-
-
void
RenderScene()
-
{
-
-
g_D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);
-
-
-
g_D3DDevice->BeginScene();
-
-
-
g_D3DDevice->EndScene();
-
-
-
g_D3DDevice->Present(NULL, NULL, NULL, NULL);
-
}
-
-
-
void
Shutdown()
-
{
-
if
(g_D3DDevice != NULL) g_D3DDevice->Release();
-
if
(g_D3D != NULL) g_D3D->Release();
-
-
g_D3DDevice = NULL;
-
g_D3D = NULL;
-
}
安装错误解决:
问题1..
d3d002/d3d002/main.cpp(46) : error C3861: “_T”: 找不到标识符
解决方法:加载 头文件:#include <tchar.h>
分享到:
相关推荐
这是一些direct9.0游戏开发引擎的一些代码,希望和大家分享一下,共同进步。里面有一些简单的例子,比如光照,图元,材质等一些实例
[游戏开发][中文]Direct9.0c入门.PDF
Direct9.0 SDK 安装包(6/8)
DirectSHow+Direct9.0c中文资料
包含 1.纹理过滤器 2.多级纹理 3.寻址模式 的使用!
Direct9.0 SDK 安装包(1/8)
Direct9.0 SDK 安装包(8/8)
天空盒里面的陆地上有一个手拿武器和盾牌的人物移动 这我学了半年的DX后做出来的小项目,请大家多指教
Direct9.0 SDK 安装包(2/8)
DirectX_9.0 3D游戏开发编程基础,每章节都有对应的源代码,能够更好的学习DX的编程,
Direct9.0 SDK 安装包(7/8)
direct 9.0 SDK summer 2004,现在网上已经找不到了,很难得的资源,有需要朋友拿去吧~,have fun!
directx 3d introduction
Direct9.0 SDK 安装包(5/8)
使用Direct9.0,采用“天空盒”技术,模拟的天空盒场景,其中并没有设置输入控制。
在VS2010下调试成功的DIRECT3D 彩色旋转立方体程序。是学习DIRECT3D入门的程序。清晰地描述了一个简单的DIRECT3D程序的框架,包括设备的初始化和建立以及建立渲染管线和优化的消息循环等过程。
Direct9.0 SDK 安装包(4/8)
此资源为Direct3D 9.0 SDK 文档(中文版),对学习和利用Direct3D进行开发的人员有很大的帮助
用directx 9.0 写的画一个蓝屏的小程序
Direct3D+9.0+SDK+文档.chm Direct3D开发文档