0

我正在关注一本名为“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 *”

希望可以有人帮帮我。谢谢。

4

1 回答 1

1

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

于 2013-05-12T02:27:11.163 回答