我正在关注一本名为“使用DirectX 9.0c进行3D游戏编程的简介:着色器方法”以及使用多字节字符集的所有示例,我不想要使用它,我不希望我的项目处于多任务状态。我的问题是书上有一个调试功能,这里是代码。
//debug
#if defined(DEBUG) | defined(_DEBUG)
#ifndef HR
#define HR(x) \
{ \
HRESULT hr = x; \
if(FAILED(hr)) \
{ \
DXTrace(__FILE__, __LINE__, hr, #x, TRUE); \
} \
}
#endif
#else
#ifndef HR
#define HR(x) x;
#endif
#endif
然后在我的.cpp文件上,我在书上使用了这个代码来创建设备。
HR(md3dObject->CreateDevice(
D3DADAPTER_DEFAULT, // primary adapter
mDevType, // device type
mhMainWnd, // window associated with device
devBehaviorFlags, // vertex processing
&md3dPP, // present parameters
&gd3dDevice)); // return created device
那么错误就是。 错误C2664:'DXTraceW':无法将参数4从'const char [107]'转换为'const WCHAR *'
希望有人可以帮助我。 THX。答案 0 :(得分:1)
尝试将参数从#x
更改为L#x
,或使用Microsoft的宏_T(#x)
。