| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1913 人关注过本帖
标题:关于GetDlgItemText从控件中取得的内容问题 (已解决)
只看楼主 加入收藏
wsz9903011
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2009-4-24
结帖率:90.91%
收藏
已结贴  问题点数:40 回复次数:4 
关于GetDlgItemText从控件中取得的内容问题 (已解决)
比如 invoke  GetDlgItemText,hWnd,IDC_IID,addr szBuffer,512   比如我在控件IDC_IID输入6968676B6C70676D716A3138373937333638 一共18字节
1.那么在缓存区szBuffer里 这些算属于字符串 还是算16进制的数值??? (我想不是数值吧)
2.如果我想把它们转为16进制数值 是不是要自己转? WINDOWS API 里有没有现成转的??
3.假如自己转的思路是什么?是不是 mov eax, offset szBuffer 然后  [eax]..[eax+5]....[eax+7]分别把它们转为16进数值 然后再定义一个比如lpBuffer 缓冲区 mov ecx, offset lpBuffer  [ecx]...[ecx+5] 分别对应存储??

4.附加问题 iid=6968676B6C70676D716A3138373937333638
末字节为38。基数=38+30=68
从iid中截出69 68 6B 6C 70 6D 71 6A
分别减去基数68
得到ss号10348592
假设iid 里的值已经是16进制型的了 存储到szBuffer 写这个算法 可不可以用第3个问题的 那个方法??
比如mov eax,offset szBuffer
    mov edx,[eax+17];取第18个数字 这里为38 (不知道这样对不对)
    add edx,30h;求基数
........等等


可能问题有点多 而且也不是什么高技术的问题而且属于那种半吊子基础不好的人的问题  但希望各位老师能抽点时间解在下心中的疑惑(一般也好) 本以为会很简单 但真的自己不参照东西写还是问题百出 有时候看看别人源代码 修修补补 心想哦 知道了  但是真的自己不看书 不参照 还真的蛮难写的 这就是业余跟专业的区别吧(发点牢骚 别见怪 )解决

[ 本帖最后由 wsz9903011 于 2009-8-19 15:02 编辑 ]
搜索更多相关主题的帖子: 困惑 控件 青春期 
2009-08-01 23:45
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:28 
GetDlgItemText  当然是字符是了

有 GetDlgItemInt

自己转每个判断 先判断是字母还是数字 数字减30h 字母的话减'a'  'A' 再一位一位的生成 这个c写的很多 而且c的库里也有~

最后一个不太明白 偶的算法很烂~
2009-08-02 00:01
wsz9903011
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2009-4-24
收藏
得分:0 
终于 把程序编好了  对汇编又有了很大程度的提高 感谢zklhp
2009-08-07 14:29
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
mov eax,offset szBuffer
mov edx,[eax+17];取第18个数字 这里为38 (不知道这样对不对)
add edx,30h;求基数

mov eax,offset szBuffer
mov dl,byte ptr[eax + 17];是取第18个数字,但取到的是一个字节值。

汇编不像其他高级语言有很多数据类型,所以做数据运算时,应该自己心中有数。

[ 本帖最后由 东海一鱼 于 2009-8-12 11:56 编辑 ]

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-08-12 11:54
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用东海一鱼在2009-8-12 11:54的发言:mov eax,offset szBuffer mov edx,[eax+17];取第18个数字 这里为38 (不知道这样对不对) add edx,30h;求基数mov eax,offset szBuffermov dl,byte ptr[eax + 17];是取第18个数字,但取到的是一个字节值。 ...
高级语言也是字节 字 双字 这几个 只不过类型检查的好 不过有时换来换去挺麻烦~~~
2009-08-12 17:43
快速回复:关于GetDlgItemText从控件中取得的内容问题 (已解决)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028849 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved