我在VS2010下学习使用DirectX SDK,照着书上的例子把代码敲进去,但是有一个问题始终无法解决。问题:创建窗口的时候,会出现报错"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容WNDCLASSEX wc = {sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0, 0, 
               hInst,  NULL, NULL, NULL, NULL,  "UGPDX", NULL}; 我写上面这条语句的时候,"UGPDX"不被接受,书上的环境是VS2003,请问怎样才能让程序接收这个字符串?

解决方案 »

  1.   

    LPCWSTR 看看它是怎么定义的。
      

  2.   

    "UGPDX " 改为 L"UGPDX "楼主太小气
      

  3.   

     "UGPDX "改成_T( "UGPDX ");
    你这个问题其实是UNICODE与ANSI的问题,VS2010默认用的是UNICODE,而一般各种书的代码都是基于ANSI的。一般ANSI代码转UNICODE的话,字符常量前加_T。char改TCHAR就行了。
      

  4.   


    同感同感,DIRECTX中也是用VC6的开发吧,你用VS2010可以直接将项目转换成VS2010的,但是VC6的库和VS2010 有些不同,想必随着深入你也会遇到更多兼容的问题,网上会有不少这样的问题。
      

  5.   

    我也跟着瞎凑活,是字节问题,unicode和ascii的问题,2003默认是ascii,而2008以后,默认是unioncode ,在默认是ascii的时候,Tchar 与char无区别的