遇到的问题如题,是我在做一次学校安排的实验遇到的。

然后可以看到VC中是能运行的,但是VS会有报错,那这是不是IDE的区别吗?应该不是。
在Dialog中制作的表格的一些组件都对应着IDC_…比如IP,就对应着承受IP的这个组件,他的ID就应该是IDC_IP。比如:

我们就要修改对应的组件ID:


这样报错就解决啦!
等等,还有错!!
😵
wait!
第三个参数也有错!这个错误是由于你的程序使用了Unicode字符集,而SetDlgItemText()函数的第三个参数是Unicode字符串类型(LPCWSTR),而你却传递了一个ANSI字符串类型(const char*)。
要解决这个问题,有两种方法可以尝试:
将字符串转换为Unicode格式:你可以使用MultiByteToWideChar()函数将ANSI字符串转换为Unicode字符串,然后再将其传递给SetDlgItemText()函数。例如:
char str[] = "127.0.0.1";
int len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
wchar_t* wstr = new wchar_t[len];
MultiByteToWideChar(CP_ACP, 0, str, -1, wstr, len);
SetDlgItemText(hDlg, IDC_IP, wstr);
delete[] wstr;
直接使用Unicode字符串类型:你可以将字符串定义为Unicode字符串类型(wchar_t*),然后将其传递给SetDlgItemText()函数。例如:
wchar_t str[] = L"127.0.0.1";
SetDlgItemTextW(hDlg, IDC_IP, str);
推荐第二种方法哦。