怎样将char* 的类型转换成LPCTSTR类型。

解决方案 »

  1.   

    char ch[10] = "Hello";
    LPCTSTR  lpStr;lpStr = (LPCTSTR)ch;
      

  2.   

    LPCTSTR -> const char*
      

  3.   

    楼上有道理,看下面的定义就知道之间的关系了。
    typedef char CHAR;
    typedef CONST CHAR *LPCSTR, *PCSTR;
    typedef LPCSTR LPCTSTR;
      

  4.   

    在我的程序中LPCTSTR是const unsigned short*,所以转换后的都是乱码。你们的方法还是不行。
      

  5.   

    "LPCTSTR是const unsigned short*,所以转换后的都是乱码"有什么因果关系?
    贴code?
      

  6.   

    LPCTSTR -> const char*
      

  7.   

    楼主用的是Unicode,要用mbstowcs 转换一下。
      

  8.   

    BOOL mciExecute (LPCTSTR szCommand)
    {
         MCIERROR error ;
         TCHAR    szErrorStr [1024] ;     if (error = mciSendString (szCommand, NULL, 0, NULL))
         {
              mciGetErrorString (error, szErrorStr, 
                                 sizeof (szErrorStr) / sizeof (TCHAR)) ;
              MessageBeep (MB_ICONEXCLAMATION) ;
              MessageBox (NULL, szErrorStr, TEXT ("MCI Error"), 
                          MB_OK | MB_ICONEXCLAMATION) ;
         }
         return error == 0 ;
    }
    将MCI函数封装起来。
    char FileName[30];
    mciExecute (TEXT ("open new type waveaudio alias mysound"));
    strcpy(FileName, "save mysound ");
    strcat(FileName, "2003-06-01");
    strcat(FileName, ".wav");
    mciExecute (FileName) ;
    mciExecute (TEXT ("close mysound")) ;
    以上是我的代码,但是在调用mciExcute(FileName)的时候总是有问题,FileName从char[30]转换成LPCTSTR后,是乱码。
    请帮忙
      

  9.   

    就像 dizzo(流浪汉)说的那样
    应该是你的MciExecute是Unicode,用mbstowcs 转换一下。