int CWnd::GetWindowTextW(LPTSTR,int) const”: 不能将参数 1 从“char [10]”转换为“LPTSTR”

本文介绍如何使用MFC在对话框中通过编辑框控件获取整型数值,并进行加法运算后显示结果。文章详细展示了使用CString类替代char数组处理文本,避免类型转换错误的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

[cpp]  view plain copy
  1. //定义了三个编辑框控件 接受num1 num2 num3     
  2. void CTestDlg::OnBnClickedButton1()   //响应按钮 add  
  3. {  
  4.     // TODO: 在此添加控件通知处理程序代码  
  5.     int num1,num2,num3;  
  6.     char ch1[10],ch2[10],ch3[10];  
  7.     GetDlgItem(IDC_EDIT1)->GetWindowTextW(ch1,10);  
  8.     GetDlgItem(IDC_EDIT2)->GetWindowTextW(ch2,10);  
  9.     num1=atoi(ch1);  
  10.     num2=atoi(ch2);  
  11.     num3=num1+num2;  
  12.     itoa(num3,ch3,10);  
  13.     GetDlgItem(IDC_EDIT3)->SetWindowTextW(ch3);//当计算好num1+num2 显示在第三个编辑框控件中  
  14. }  
 

出现错误
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.帮忙解决上面的错误 

 

 

 

问题解决:

[cpp]  view plain copy
  1. C/C++ codevoidCTestDlg::OnBnClickedButton1()//响应按钮 add{//TODO: 在此添加控件通知处理程序代码intnum1,num2,num3;  
  2. CString str1, str2, str3;  
  3. GetDlgItem(IDC_EDIT1)->GetWindowText(str1);  
  4. GetDlgItem(IDC_EDIT2)->GetWindowText(ch2);  
  5. num1=_ttoi((LPCTSTR)str1);  
  6. num2=_ttoi((LPCTSTR)str2);  
  7. num3=num1+num2;  
  8. _itot(num3,(TCHAR*)str3.GetBuffer(10),10);  
  9. str3.ReleaseBuffer();  
  10. GetDlgItem(IDC_EDIT3)->SetWindowText(str3);//当计算好num1+num2 显示在第三个编辑框控件中  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值