游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1604|回复: 2

关于D3DXMATERIAL内部成员pTextureFilename的问题。

[复制链接]

25

主题

77

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2009-10-4 10:59:00 | 显示全部楼层 |阅读模式
加载一个.X文件,画出来了,材质设定也成功了,就是纹理添不上去。调试一看,pTextureFilename是LPSTR类型的,但VS2005里面全部用的UNICODE,所以连编译都通不过。。我知道用TEXT()宏就可以把字符串常量弄成UNICODE,变量可以用 MultiByteToWideChar函数,但调试出来又提示我pTextureFilename里面是“无效字符串”?哎,真是被这UNICODE整的无语了。

部分源代码在这。
          //部分全局变量
          IDirect3DDevice9* Device = 0;
          std::vector<IDirect3DTexture9*> AirPlaneTex(0);

          ...
          ...

        wchar_t TempString[30]=TEXT("");
        //纹理设置。
        for(int i=0;i<NumMtrls;i++)
        {
                IDirect3DTexture9* TempTex=0;
                MultiByteToWideChar(0,0,MtrlBuffer.pTextureFilename,0,TempString,0);
                D3DXCreateTextureFromFile(Device,TempString,&TempTex);
                AirPlaneTex.push_back(TempTex);
        }

注:我WIN32 API学的不好,MultiByteToWideChar有几个参数都不知道啥意思,就设为0了。

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2009-10-6 00:03:00 | 显示全部楼层

Re:关于D3DXMATERIAL内部成员pTextureFilename的问题。

D3DXCreateTextureFromFileA

25

主题

77

帖子

77

积分

注册会员

Rank: 2

积分
77
 楼主| 发表于 2009-10-6 14:12:00 | 显示全部楼层

Re: 关于D3DXMATERIAL内部成员pTextureFilename的问题。

谢谢了,已经解决了!是那个转UNICODE的函数的问题!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 05:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表