用c++编写求两个函数的和,选择求和按钮后,将结果显示在edit box中,vc6.0中可运行,为什么在vs2010中不行
//m_control1,m_control2,m_control3都为控件变量错误显示为:(1)、errorC2664:“intCWnd::GetWindowTextW...
//m_control1,m_control2,m_control3都为控件变量
错误显示为: (1)、error C2664: “int CWnd::GetWindowTextW(LPTSTR,int) const”: 不能将参数 1 从“char [10]”转换为“LPTSTR”
(2)、error C2664: “CWnd::SetWindowTextW”: 不能将参数 1 从“char [10]”转换为“LPCTSTR”
void CTestDlg::OnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
int num1,num2,num3;
char ch1[10],ch2[10],ch3[10];
m_control1.GetWindowTextW(ch1,10);
m_control2.GetWindowTextW(ch2,10);
num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);
m_control3.SetWindowTextW(ch3); 展开
错误显示为: (1)、error C2664: “int CWnd::GetWindowTextW(LPTSTR,int) const”: 不能将参数 1 从“char [10]”转换为“LPTSTR”
(2)、error C2664: “CWnd::SetWindowTextW”: 不能将参数 1 从“char [10]”转换为“LPCTSTR”
void CTestDlg::OnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
int num1,num2,num3;
char ch1[10],ch2[10],ch3[10];
m_control1.GetWindowTextW(ch1,10);
m_control2.GetWindowTextW(ch2,10);
num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);
m_control3.SetWindowTextW(ch3); 展开
2个回答
展开全部
第一种方法 :
把代码中全部的char [xxx] 或者 char* 改成wchar_t [xx], wchar_t*
所有的字符串字面值加上L前缀, "abc" 改成 L"abc"
第二种方法 :
项目属性中-常规-把[使用Unicode字符集]改成[使用多字节字符集]
并且所有代码中的 后缀为W的系统函数, 改成A, 比如GetWindowTextW改成 GetWindowTextA
LZ的代码VC6真可以运行?
你的字符是char*(8位字符), 但是调用的函数后缀都是W (要求16位宽字符).
后缀是W的要求参数是 wchar* , 后缀是A的要求参数 char*, 不一样的.
把代码中全部的char [xxx] 或者 char* 改成wchar_t [xx], wchar_t*
所有的字符串字面值加上L前缀, "abc" 改成 L"abc"
第二种方法 :
项目属性中-常规-把[使用Unicode字符集]改成[使用多字节字符集]
并且所有代码中的 后缀为W的系统函数, 改成A, 比如GetWindowTextW改成 GetWindowTextA
LZ的代码VC6真可以运行?
你的字符是char*(8位字符), 但是调用的函数后缀都是W (要求16位宽字符).
后缀是W的要求参数是 wchar* , 后缀是A的要求参数 char*, 不一样的.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询