OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5160|回复: 11

密码修改界面的一个程序

[复制链接]

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
发表于 2018-8-17 09:40:30 | 显示全部楼层 |阅读模式
10金钱
不知道我函数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();//修改完密码,要返回的界面
                    }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-8-17 11:01:44 | 显示全部楼层
断点进去看看是哪一行代码执行结果不对。
回复

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2018-8-17 12:32:08 | 显示全部楼层
sizeof(MM)的结果可能是4,另外可以看看 memcpy 的详细解释#(滑稽)
https://zh.cppreference.com/w/c/string/byte/memcmp
回复

使用道具 举报

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
 楼主| 发表于 2018-8-17 14:17:17 | 显示全部楼层
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可以用来比较俩数组是不是一样吧
回复

使用道具 举报

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
 楼主| 发表于 2018-8-17 14:20:14 | 显示全部楼层
HXYDJ 发表于 2018-8-17 11:01
断点进去看看是哪一行代码执行结果不对。

断点进过了,他是在执行完r=memcmp(MM,SHURU1,6);就算我SHURU1和MM一样,它也判断到else那里
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-8-17 14:23:53 | 显示全部楼层
32shixisheng 发表于 2018-8-17 14:20
断点进过了,他是在执行完r=memcmp(MM,SHURU1,6);就算我SHURU1和MM一样,它也判断到else那里

那就说明memcmp(MM,SHURU1,6) 这个的比较过程不是你想象的那样,好好研究下这行代码,可能你的用法不对。
回复

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2018-8-17 15:36:00 | 显示全部楼层
本帖最后由 ISO14882 于 2018-8-17 15:42 编辑
32shixisheng 发表于 2018-8-17 14:17
我定义的密码MM[]={'1','2','3','4','5','6'}

memcpy可以用来比较俩数组是不是一样吧

我记得在这里函数传参时会发生类型退化导致MM被解释成指针,在sizeof(MM)后的结果会变成4(32位机,数组做形参时),另外调试的时候可以监视一下内存,看看两个符号的内存状态
回复

使用道具 举报

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
 楼主| 发表于 2018-8-30 10:50:45 | 显示全部楼层
???????????????????
回复

使用道具 举报

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
 楼主| 发表于 2018-8-30 10:51:17 | 显示全部楼层
真服了,这他妈的解决不了了
回复

使用道具 举报

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
 楼主| 发表于 2018-8-30 10:56:22 | 显示全部楼层
本帖最后由 32shixisheng 于 2018-8-30 10:58 编辑

有毒吧,我在输入密码界面的时候用这个函数没问题并且r最后是0x00000000
但是在修改密码界面的时候一样的方法,r就变成了0xFFFFFFD0了C:\Users\Administrator\Desktop
微信图片_20180830105516.png 微信图片_20180830105522.png 微信图片_20180830105529.png
回复

使用道具 举报

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
 楼主| 发表于 2018-8-30 10:59:08 | 显示全部楼层
连个人问都没有
回复

使用道具 举报

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-6-6
在线时间
28 小时
 楼主| 发表于 2018-8-30 11:01:30 | 显示全部楼层
自求多福,本人已死
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 11:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表