在一个线程函数里的代码:
.....
         CString tmp,stredit2;
GetDlgItemText(hWnd,IDC_EDIT_CMD,stredit2,sizeof(stredit2));   //获取编辑框中输入的命令行
......
编译出错:
error C2664: 'GetDlgItemTextA' : cannot convert parameter 3 from 'class CString' to 'char *'

解决方案 »

  1.   

    stredit2定义成一个TCHAR的数组不行么?
      

  2.   

    非Uniocde,会自动使用 char*,GetDlgItemText(hWnd,IDC_EDIT_CMD,stredit2),第四个参数去掉试试
      

  3.   

    ::GetDlgItemText(hWnd,IDC_EDIT_CMD,stredit2.GetBuffer(200),200);
    stredit2.ReleaseBuffer();
      

  4.   


    推荐这个用法,千万不要直接来强制类型转换,或者对CString搞什么sizeof()之类的东西,CString是个很复杂的Class,有其自己的空间管理规则,不能简单的当成char[]数组来用。