char ch1[10],ch2[10],ch3[10];
GetDlgItem(IDC_EDIT1)->GetWindowTextW (ch1,10);error C2664: “int CWnd::GetWindowTextW(LPTSTR,int) const”: 不能将参数 1 从“char [10]”转换为“LPTSTR”错误是因为GetWindowTextW()第一个参数要是LPTSTR类型要怎么转换?

解决方案 »

  1.   

    试试GetWindowTextW ((LPTSTR)ch1,10);
      

  2.   

    编译是过去了,但运行出问题了,出现乱码对话框一个按钮,三个编辑框,做加
    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];
    GetDlgItem(IDC_EDIT1)->GetWindowTextW ((LPTSTR)ch1,10);
    GetDlgItem(IDC_EDIT2)->GetWindowTextW ((LPTSTR)ch2,10);
    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1=num2;
    itoa(num3,ch3,10);
    GetDlgItem(IDC_EDIT3)->SetWindowTextW((LPTSTR)ch3);
      

  3.   

    GetWindowTextW ?
    你在什么环境下做的,这是UNICODE版本的
    TCHAR ch1[10],ch2[10],ch3[10];
    GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)ch1,10);
      

  4.   

    对了,用之前记的清0;
    TCHAR ch1[10],ch2[10],ch3[10];
    memset(ch1, 0, 10 * sizeof(TCHAR));
    memset(ch2, 0, 10 * sizeof(TCHAR));
    memset(ch3, 0, 10 * sizeof(TCHAR));
    GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)ch1,10);
      

  5.   

    这不是语法严格,是由于VC2005默认使用Unicode,与VC6有着本质的区别。
    请参考http://www.sgxcn.com/doc/show.asp?ID=322
      

  6.   

    补充:LPTSTR = TCHAR*
    而char* = LPSTR
    TCHAR在定义了Unicode后等价于wchar_t,没有定义Unicode时等价于char。
      

  7.   

    编译是过去了,但运行出问题了,出现乱码
    UNICODE版本下面最好用TCHAR宽字符类型~~~
      

  8.   

    WCHAR ch1[10],ch2[10],ch3[10];
      

  9.   

    谢谢大家!还有些其他问题: itoa 和 atoi 也过不了 ,在MSDN2005 中要搜索什么关键字能搜到相应的函数呢?
      

  10.   

    还有些其他问题: itoa 和 atoi 也过不了 ,在MSDN2005 中要搜索什么关键字能搜到相应的函数呢?
    什么意思??
    MSDN2005里面没有索引查找吗??
      

  11.   

    索引查找  向来都令我很失望,没几次能查到我要的.那几个函数自己查到了:_itow() ,_wtoi()前面加个下划线什么意思?
      

  12.   

    下划线没什么意思. 微软的把戏, 一般表示微软自己的一套C运行库函数. 这个在C标准库是没有的.  类似的函数还有很多. 一般你用了这样的函数, 就意味着很难将代码移植到非WINDOWS环境下.