请问
我要把LPCTSTR a="Hello"传入一个myfunc(char* b);
该怎么转换呢
我直接使用 myfunc((char*)a);
在myfunc内只会看到传入一个'H'

解决方案 »

  1.   

    CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;
    类型转换
      

  2.   

    CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;
    类型转换
      

  3.   

    CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;
    类型转换
      

  4.   

    char* WCharToChar(LPCWSTR lpwStr)
    {
    char*     pElementText;
    int    iTextLen;
    iTextLen = WideCharToMultiByte( CP_UTF8,0,lpwStr,-1,NULL,0,NULL,NULL );
    pElementText = new char[iTextLen + 1];
    memset( ( void* )pElementText, 0, sizeof( char ) * ( iTextLen + 1 ) );
    ::WideCharToMultiByte( CP_UTF8,0,lpwStr,-1,pElementText,iTextLen,NULL,NULL);
    return pElementText;
    }char * pchar = WCharToChar(a);
    myfunc(pchar);
    delete [] pchar;