如题,请教高手如何将LPCTSTR转换为const char * ??
谢谢~

解决方案 »

  1.   

    error C2664: 'strcmp' : cannot convert parameter 1 from 'LPCTSTR' to 'const char *'
    可能是有UNICODE的原因,需要转换一下的吧??
      

  2.   

    typedef const char * LPCTSTR;
    这个不就是说他两个本身就是一个类型吗
      

  3.   

    UNICODE 使用_tcscmp  MSDN
    知道了 谢谢~
      

  4.   

    char   str[1024];
    wsprintfA(str,"%S",lpWideChars); 
      

  5.   


    LPCTSTR1、在非UNICODE环境下为 const char *2、在UNICODE环境下为 const unsigned short *
    楼主现在遇到的问题可能是要将宽字符转换为多字节,需要调用以下 API 函数:int WideCharToMultiByte(
      UINT CodePage,            // code page
      DWORD dwFlags,            // performance and mapping flags
      LPCWSTR lpWideCharStr,    // wide-character string
      int cchWideChar,          // number of chars in string
      LPSTR lpMultiByteStr,     // buffer for new string
      int cbMultiByte,          // size of buffer
      LPCSTR lpDefaultChar,     // default for unmappable chars
      LPBOOL lpUsedDefaultChar  // set when default char used
    );
      

  6.   

    #include <atlbase.h>USES_CONVERSION
    调用A2T,T2A,T2W等进行转换
      

  7.   

    这个问题我还想也遇到过
    当时记得好像要加什么_T()的。
    可以查一下msdn文档
      

  8.   

    LPCTSTR即 const TCHAR*,这是unicode编码。转换为const char*还是比较麻烦的:
    LPCTSTR aaa;
    //……DWORD dwMinSize;
    dwMinSize = WideCharToMultiByte(CP_ACP,NULL,aaa,-1,NULL,0,NULL,FALSE); //计算长度
    char *bbb= new char[dwMinSize];WideCharToMultiByte(CP_OEMCP,NULL,aaa,-1,bbb,dwMinSize,NULL,FALSE);
      

  9.   

    设置为UNICODE环境,就ok!!!
      

  10.   

    要是多字节就直接强转
    unicOde就参考一下WideCharToMultiByte
      

  11.   

    用 _tcscmp 这个函数试试
      

  12.   

    bdzwj 
    是正解~ 你应该处理一下字符集的问题
      

  13.   

    如果是UNICODE环境,则LPCTSTR 是const wchar_t*的宏定义,要想转换成const char*,则可以使用W2A宏进行处理。如果是非UNICODE则不需要转换,可直接使用。
      

  14.   

    4楼简单直接,这种问题一般都是被unicode骚扰的
      

  15.   

    貌似在release下回出问题,字符串被转换成乱码.....,dubug 下绝对好用...