毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

error C2664: “int CWnd::GetWindowTextW(LPTSTR,int) const”

更新时间:2012-7-18:  来源:毕业论文

//定义了三个编辑框控件 接受num1 num2 num3  

void CTestDlg::OnBnClickedButton1()   //响应按钮 add
{
    // TODO: 在此添加控件通知处理程序代码
    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];
    GetDlgItem(IDC_EDIT1)->GetWindowTextW(ch1,10);
    GetDlgItem(IDC_EDIT2)->GetWindowTextW(ch2,10);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;

    itoa(num3,ch3,10);

    GetDlgItem(IDC_EDIT3)->SetWindowTextW(ch3);//当计算好num1+num2 显示在第三个编辑框控件中}

出现错误
f:\visual studio 2008\projects\mydialog\mydialog\testdlg.cpp(75) : error C2664: “int CWnd::GetWindowTextW(LPTSTR,int) const”: 不能将参数 1 从“char [10]”转换为“LPTSTR”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>f:\visual studio 2008\projects\mydialog\mydialog\testdlg.cpp(76) : error C2664: “int CWnd::GetWindowTextW(LPTSTR,int) const”: 不能将参数 1 从“char [10]”转换为“LPTSTR”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>f:\visual studio 2008\projects\mydialog\mydialog\testdlg.cpp(84) : error C2664: “CWnd::SetWindowTextW”: 不能将参数 1 从“char [10]”转换为“LPCTSTR”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换


以前遇到这种问题一直是在问题处加 _T() 就行
但是这里加就会发出错误
f:\visual studio 2008\projects\mydialog\mydialog\testdlg.cpp(75) : error C2065: “Lch1”: 未声明的标识符

1.在以前的书上都是用的GetWindowText 现在的好多函数都加W 这是为什么呢??
2.还有加_T是什么意思啊???
3.帮忙解决上面的错误

把GetWindowTextW改成GetWindowText
把char ch1[10],ch2[10],ch3[10] 改成TCHAR ch1[10],ch2[10],ch3[10];
1、W后缀的函数集表明使用的是宽字符集,
2、_T == _TEXT,是一个宏,如果你定义了Unicode就是宽字符,等价于WCHAR,否则是ANSI字符集,等价于CHAR如果按照楼上锁改,就会产生下面的错误
f:\visual studio 2008\projects\mydialog\mydialog\testdlg.cpp(84) : error C2664: “atoi”: 不能将参数 1 从“TCHAR [10]”转换为“const char *”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>f:\visual studio 2008\projects\mydialog\mydialog\testdlg.cpp(85) : error C2664: “atoi”: 不能将参数 1 从“TCHAR [10]”转换为“const char *”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>f:\visual studio 2008\projects\mydialog\mydialog\testdlg.cpp(88) : error C2664: “itoa”: 不能将参数 2 从“TCHAR [10]”转换为“char *”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

请各位帮忙把1,2两个问题也解决一下 thanks1. W 是unicode版本。

2. _T 是自动进行 unicode/ansi版本匹配。 如 _T("aa") 在unicode环境下就是 wchar_t* "aa"; ansi环境下就是 char* "aa";

3. 将 char ch1,... 改成 TCHAR ch1,...

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。