我正在使用 DirectX9 开发一个简单的项目。我在一些数据类型的转换上遇到了一些麻烦,我做了一些研究,但没有发现任何特别有用的东西。让我们从代码开始:
LPDIRECT3DSURFACE9 LoadSurface(char *fileName, D3DCOLOR transColor)
{
LPDIRECT3DSURFACE9 image = NULL;
D3DXIMAGE_INFO info;
HRESULT result;
result = D3DXGetImageInfoFromFile(fileName, &info);
if (result != D3D_OK) return NULL;
result = d3ddev->CreateOffscreenPlainSurface(
info.Width, //width of the surface
info.Height, //height of the surface
D3DFMT_X8R8G8B8, //surface format
D3DPOOL_DEFAULT, //memory pool use
&image, //reference to image
NULL); //reserved - ALWAYS NULL
//make sure file loaded properly
if (result != D3D_OK) return NULL;
return image;
}
在第 6 行,我收到变量文件名的错误:
IntelliSense:“char *”类型的参数与“LPCWSTR”类型的参数不兼容
尝试使用 MessageBox 时,我还在第二个和第三个参数处得到完全相同的错误消息:
if (d3ddev == NULL)
{
MessageBox(hWnd, "Error Creating Direct3D Device", "Error", MB_ICONERROR);
return 0;
}
我以前使用过完全一样的代码并且没有问题。不知道发生了什么 - 特别是因为 LPCWSTR 和 char* 本质上是同一件事......
任何帮助表示赞赏!谢谢