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 行目で、変数 fileName のエラーが発生しています。
IntelliSense: 型 "char *" の引数は、型 "LPCWSTR" のパラメーターと互換性がありません
MessageBox を使用しようとすると、2 番目と 3 番目のパラメーターでもまったく同じエラー メッセージが表示されます。
if (d3ddev == NULL)
{
MessageBox(hWnd, "Error Creating Direct3D Device", "Error", MB_ICONERROR);
return 0;
}
私は以前にこのようなコードを使用したことがありますが、問題はありませんでした。何が起こっているのかわかりません - 特に LPCWSTR と char* は本質的に同じものなので...
どんな助けでも大歓迎です!! ありがとうございました