使用Unicode字符集定义调试

时间:2013-05-12 02:19:44

标签: windows direct3d

我正在关注一本名为“使用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。

1 个答案:

答案 0 :(得分:1)

尝试将参数从#x更改为L#x,或使用Microsoft的宏_T(#x)