关于GetWindowText问题,获得的数据是间隔的?
vs2008中:(貌似在vc6.0中就没有下面的问题)
有3个edit
- C/C++ code
int num1,num2,num3; char ch1[15] = {'0'},ch2[15] = {'0'},ch3[15] = {'0'}; GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)ch1, sizeof(ch1)); GetDlgItem(IDC_EDIT2)->GetWindowText((LPTSTR)ch2, sizeof(ch2)); num1 = atoi(ch1); num2 = atoi(ch2); num3 = num1 + num2; itoa(num3, ch3, 10); GetDlgItem(IDC_EDIT3)->SetWindowText((LPTSTR)ch3);用GetWindowText得到的数据是间隔的,就是假如我在IDC_EDIT1中输入整数123,那么在ch1中,ch1[0]是1,ch1[1]是0,ch1[2]是2,ch1[3]是0,ch1[4]是3,以后都是0了,这是为什么呢?
[解决办法]
编码问题,vs2008缺省是unicode编码,一个字符2个字节
VS2008项目中有设置,改为多字符集的就和vc60一样了
[解决办法]
那就用 wchar_t 代替char;