密码修改界面的一个程序

2019-07-20 06:26发布

不知道我函数memcmp和memcpy用的正确不,程序目前在memcmp比较下一直判断密码和原密码不一样,
case GUI_ID_BUTTON0:                     
             if(NCode==WM_NOTIFICATION_RELEASED)
                    {
                                                                                       
                                                        EDIT_GetText(WM_GetDialogItem(WM_HWIN_XGMM,GUI_ID_EDIT0),SHURU1,7);//SHURU1原密码
                                                        EDIT_GetText(WM_GetDialogItem(WM_HWIN_XGMM,GUI_ID_EDIT1),SHURU2,7);//SHURU2新密码
                                                        r=memcmp(MM,SHURU1,6);//比较输入的原密码和密码是否一样//MM是保存的的一个密码数组
                                                        if(!r)
                                                        {
                                                        memset(MM,0,sizeof(MM));
                                                        memcpy(MM,SHURU2,6);
                                                        }
                                                        else
                                                        {
                                                        memset(SHURU1,0,sizeof(SHURU1));
                                                        memset(SHURU2,0,sizeof(SHURU2));
                                                        GUI_EndDialog(WM_HWIN_XGMM,0);
                                                        MainTask_Tishi3();//密码错误弹出的提示界面
                                                        }
                                                        MainTask_Option();//修改完密码,要返回的界面
                    }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
HXYDJ
1楼-- · 2019-07-20 08:53
 精彩回答 2  元偷偷看……
ISO14882
2楼-- · 2019-07-20 14:16
 精彩回答 2  元偷偷看……
32shixisheng
3楼-- · 2019-07-20 17:01
ISO14882 发表于 2018-8-17 12:32
sizeof(MM)的结果可能是4,另外可以看看 memcpy 的详细解释#(滑稽)
https://zh.cppreference.com/w/c/stri ...

我定义的密码MM[]={'1','2','3','4','5','6'}

memcpy可以用来比较俩数组是不是一样吧
32shixisheng
4楼-- · 2019-07-20 22:21
HXYDJ 发表于 2018-8-17 11:01
断点进去看看是哪一行代码执行结果不对。

断点进过了,他是在执行完r=memcmp(MM,SHURU1,6);就算我SHURU1和MM一样,它也判断到else那里
HXYDJ
5楼-- · 2019-07-21 02:46
 精彩回答 2  元偷偷看……
ISO14882
6楼-- · 2019-07-21 06:23
 精彩回答 2  元偷偷看……

一周热门 更多>