//WIN32编辑框文本传参到另一个cpp里处理数据,但参数传输错误,代码如下
TCHAR name[] = {0};
TCHAR password[] = {0};
case WM_COMMAND:
switch (LOWORD(wParam)) {
case ID_LOADBUTTON:
GetWindowText(LoadText,name,MAX_SIZE);//编辑框输入后这里name得到数据正确,例如传入admin
GetWindowText(PassText, password, MAX_SIZE);
if (CheckLoad(name, password)) {//name传到这个方法后name变成a123不知道为什么会不一致,后面附CheckLoad方法
//测试
char *createSystem = "创建学生系统窗口";
WriteConsole(g_hOutput, createSystem, strlen(createSystem), NULL, NULL);
}
else {
MessageBox(hWnd, "infor", "账号或密码错误", MB_OK);
}
break;
}
break;
...
bool CheckLoad(TCHAR *name, TCHAR *password) {
if (*name == L'admin' &&*password == 123) {
return true;
}
return false;
}
WIN32编辑框文本传参数据不一致
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 菜鸟才能学的更多 2023-02-20 22:46关注
在 CheckLoad 方法中比较字符串内容的方式是错误的,应该使用字符串比较函数进行比较。此外,字符串 "admin" 和数字 123 都应该用字符串形式传入,而不是直接使用数字和字符常量。
TCHAR name[MAX_SIZE] = {0}; TCHAR password[MAX_SIZE] = {0}; case WM_COMMAND: switch (LOWORD(wParam)) { case ID_LOADBUTTON: GetWindowText(LoadText, name, MAX_SIZE); GetWindowText(PassText, password, MAX_SIZE); if (CheckLoad(name, password)) { char *createSystem = "创建学生系统窗口"; WriteConsole(g_hOutput, createSystem, strlen(createSystem), NULL, NULL); } else { MessageBox(hWnd, "账号或密码错误", "infor", MB_OK); } break; } break; bool CheckLoad(TCHAR *name, TCHAR *password) { if (_tcscmp(name, L"admin") == 0 && _tcscmp(password, L"123") == 0) { return true; } return false; }
注意,我还做了以下更改:
在定义 name 和 password 数组时,为了确保数组中有足够的空间存储编辑框中的文本,使用了 MAX_SIZE 常量。
在 CheckLoad 方法中,使用了 _tcscmp() 函数进行字符串比较。
在 MessageBox 函数中,将 "infor" 和 "账号或密码错误" 的位置颠倒,以符合函数的参数顺序。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 用ns3仿真出5G核心网网元
- ¥15 matlab答疑 关于海上风电的爬坡事件检测
- ¥88 python部署量化回测异常问题
- ¥30 酬劳2w元求合作写文章
- ¥15 在现有系统基础上增加功能
- ¥15 远程桌面文档内容复制粘贴,格式会变化
- ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”