2013-05-12 7 views
0

Я следую книге под названием «Введение в программирование 3D-игр с помощью DirectX 9.0c: Shader Approach», и весь пример использует Набор символов с несколькими байтами, и я не знаю хочу использовать его, и я не хочу, чтобы мой проект был в нескольких байтах. Моя проблема в том, что здесь есть функция отладки, вот код.Определить отладку с помощью набора символов Unicode

//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 

then on my .cpp files Я использовал этот код для создания книги.

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»

надеюсь, что кто-то может мне помочь. спасибо.

+0

Эта книга учит вас более чем одной плохой практике. Ошибка CreateDevice() должна завершиться программой. Избавьтесь от книги. –

ответ

1

Попробуйте изменить параметр от #x до L#x или использовать макрос Microsoft _T(#x).

Смежные вопросы