关于DirectX 8.0 转为DirectX 9.0环境下编译的问题
来源:互联网 发布:淘客微信公众号cms系统 编辑:程序博客网 时间:2024/05/16 06:42
我也是一个初学者,在学习DirectX 的时候。问题出了好多。因为我用的是 DirectX 9.0C的环境下写程序,可是在网上找了好多代码都是在DirectX 8.0的环境下开发的,拿DirectX 8.0下的代码来运行,那肯定是出错的。我于是在网上找原因。我本来想这个问题在网上找应该会有答案的吧,没有想到。找了大半天。找出一个结论“如果想在DirectX 9.0下想运行DirectX 8.0的程序,那会出错。唯一的办法是用DirectX 8.0的运行环境”,这个结论在我心里一下子冷了下来。还要我去下一个DirectX 8.0来用。我不想,我只有找出办法来。
我把DirectX 8.0的一个程序编译了一个,出现fatal error C1083: Cannot open include file: 'd3dx8.h': No such file or directory ,我接着把
#include <d3d8.h>
#include <d3dx8.h>
换成了
#include <d3d9.h>
#include <d3dx9.h>
再在LINK的地方加入。3dx9.lib d3dxof.lib d3d9.lib winmm.lib dxguid.lib
把文件里面的8全改成9,再次编译。
出现如下错误, error C2660: 'D3DXLoadMeshFromXA' : function does not take 7 parameters
问题出来了,函数不带7个参数。
于是我在Dx9.0的文件下找到Documentation这里,打开directx9_c.chm
然后再里面输入D3DXLoadMeshFromXA
原型为HRESULT WINAPI D3DXLoadMeshFromX(
LPCTSTR pFilename,
DWORD Options,
LPDIRECT3DDEVICE9 pD3DDevice,
LPD3DXBUFFER *ppAdjacency,
LPD3DXBUFFER *ppMaterials,
LPD3DXBUFFER *ppEffectInstances,
DWORD *pNumMaterials,
LPD3DXMESH *ppMesh
);
在DX9.0中变成了8个参数,接着读了参数的各个意思。
我在前面定义了一个 LPD3DXBUFFER pD3DXBuffer;
从原来的的
LPD3DXBUFFER pD3DXMtrlBuffer;
// 读入tiger.x到我们的模型
if( FAILED( D3DXLoadMeshFromX(
"Tiger.x", // [输入].x文件名
D3DXMESH_SYSTEMMEM, // [输入]使用系统内存
g_pd3dDevice, // [输入]d3d设备指针
NULL, ,// 不用管
&pD3DXMtrlBuffer // [输出]获取模型的材质缓冲
&g_dwNumMaterials, // [输出]材质的数量
&g_pMesh ) ) ) // [输出]模型对象指针
{
return E_FAIL;
}
变成现在的
LPD3DXBUFFER pD3DXMtrlBuffer;
LPD3DXBUFFER pD3DXBuffer;
// 读入tiger.x到我们的模型
if( FAILED( D3DXLoadMeshFromX(
"Tiger.x", // [输入].x文件名
D3DXMESH_SYSTEMMEM, // [输入]使用系统内存
g_pd3dDevice, // [输入]d3d设备指针
NULL, // 不用管
&pD3DXMtrlBuffer, // [输出]获取模型的材质缓冲
&pD3DXBuffer,
&g_dwNumMaterials, // [输出]材质的数量
&g_pMesh ) ) ) // [输出]模型对象指针
{
return E_FAIL;
}
我新加的这个pD3DXBuffer到底是什么意思。我也不懂,真的,
我只知到他能运行了。如果在以后出现这种情况,我只须加多一个参数就可以运行了。
可能效率很低,毕竟成功运行了。只能先实现第一步运行成功,如果以后能力提升了,
再慢慢了解是什么意思吧。
- 关于DirectX 8.0 转为DirectX 9.0环境下编译的问题
- 关于vc6.0下使用DirectX 9的中输入输出设备编译不同过的问题
- DirectX VS2010 编译遇到的问题
- DirectX环境的配制
- DirectX环境的修复
- 关于Vs2010 C#使用DirectX的问题
- VS2005环境下配置DirectX
- VS平台下的directx开发环境设置的一个问题
- DirectX开发环境的配置
- VS2008 编译 DirectX SDK BaseClasses 时的问题
- VS2005 编译 DirectX SDK BaseClasses 时的问题
- VS2008 编译 DirectX SDK BaseClasses 时的问题 .
- directx问题
- 关于DirectX的一些知识
- 【DirectX 2D游戏编程基础】DirectX环境的搭建
- Directx下的Effect框架
- 关于调用DirectX接口DrawIndexedPrimitive()崩溃问题的原因
- 关于directx sdk 使用的几个小问题
- oracle的备份和恢复
- 师兄李安
- What Blog Readers Want
- 招聘 - 垂直搜索介绍
- 2006 招聘(市场)预测
- 关于DirectX 8.0 转为DirectX 9.0环境下编译的问题
- 有钱人 - The World's Richest People
- 简评 - 2005年中国企业人力资源管理现状调查报告
- 出租车司机 - 人才!
- 招聘“通缉令” - 有趣的尝试
- 人力资源总监的七条“毒招“(转载)
- 网上招聘市场集中度日趋增强
- CareerXroads 招聘渠道调查
- 酷站 - 上海宁 www.shanghaining.com