首页
社区
课程
招聘
[求助]百思不的其解··
发表于: 2009-2-14 00:19 3140

[求助]百思不的其解··

2009-2-14 00:19
3140
invoke        _MtoStr,addr @szBuffer2,addr sztmp,addr sztmp2,szEcx
        mov        ebx,eax
        invoke        MessageBox,NULL,ebx,$CTA0("TEST"),MB_OK
        Invoke        SetDlgItemText, hWnd, IDC_EDT2,ebx

_MtoStr 是我写的一个内存数据转成字符串的一个函数
比如内存数据
11 22 33 44
放进一个缓冲区
'11 22 33 44 0'
返回值eax是缓冲区的地址,缓冲区 是_MtoStr 的内部变量
结果 我用MessageBox 正确弹出结果
用SetDlgItemText 却无法设置 编辑框   白色不的其解·
求助高手

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
不要返回栈上的变量,这是基本常识。

你用消息框能弹出正确结果是碰巧没有破坏栈上的数据而已,并不表示你的方法就正确。

从堆上申请空间,返回堆空间,但用完了要记得释放,否则就是一处内存泄漏了。
2009-2-14 09:01
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
新手不太懂
invoke  _MtoStr,addr @szBuffer2,addr sztmp,addr sztmp2,szEcx
  mov  ebx,eax
  invoke  MessageBox,NULL,ebx,$CTA0("TEST"),MB_OK
  Invoke  SetDlgItemText, hWnd, IDC_EDT2,ebx

这是用什么语言写的?是汇编么?》请指教下
2009-2-14 10:03
0
雪    币: 217
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你_MtoStr返回的'11 22 33 44 0',在什么地方,如果在栈上话,后面的函数调用会破坏这个地址的内容
2009-2-14 10:36
0
游客
登录 | 注册 方可回帖
返回
//