memset(chEngineNum,0,30);
memset(chIP,0,30);
CString strEngineNum ,strIP;
WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,strEngineNum,-1,chEngineNum,30,NULL,NULL);
WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,strIP,-1,chIP,30,NULL,NULL);
编译出现错误error C2664: 'WideCharToMultiByte' : cannot convert parameter 3 from 'class CString' to 'const unsigned short *' 谁知道是怎么回事?

解决方案 »

  1.   

    第三个参数不应该是CString, 应该是个unicode字串
    楼主要实现什么功能?
    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
    );
      

  2.   

    你的chxxxxx是BYTE [] 或 char []吧strcpy(chEngineNum, (LPCSTR)strEngineNum);

    strncpy(chEngineNum, (LPCSTR)strEngineNum, 
    __min(sizeof(chEngineNum), strEngineNum.GetLength()));或用memcpy也行.