|
加载一个.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了。 |
|