| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2293 人关注过本帖, 1 人收藏
标题:有人知道WIN32 API参数传递的详细过程和步骤吗?
只看楼主 加入收藏
W32Asm
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-10
收藏
得分:0 
回复 8楼 水哥
时间结构里面是定义的类型是字,字引用的话是变成word ptr [xxx+偏移],在我的反汇编中也是这样的:
00401018  |.  66:FF35 0E304>push    word ptr [40300E]                ; /FailIfExists = FALSE
0040101F  |.  6A 00         push    0                                ; |ExistingFileName = NULL
00401021  |?  66:FF35 0C304>push    word ptr [40300C]
00401028  |?  68 46204000   push    00402046                         ;  ASCII "%x:%x"
0040102D   ?  68 2C304000   push    0040302C
00401032   ?  E8 2D000000   call    <jmp.&user32.wsprintfA>

WIN32 ASM出、入栈都是32位的,所以我在写源程序的时候,直接应用了stGlt.wHour(是字类型),经过反编译后,看到自动给补0了。但是不明白出栈就出现错误了。
2012-09-12 19:42
W32Asm
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-10
收藏
得分:0 
回复 10楼 zklhp
我不是不想结贴,只是我还没明白为什么会出现这个现象的详细原因?

难道我没有弄清楚问题,就要早早的结贴吗?
2012-09-12 19:44
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我觉得这个问题的原因我已经说过了 原因就是 win32环境里面 参数都是双字 就算是字节或字 也必须扩展成双字压栈 就这么规定了 还能怎么解释呢
2012-09-12 20:35
hanyurs
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-6-5
收藏
得分:0 
能帮我做个软件吗?
2012-09-13 00:38
W32Asm
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-10
收藏
得分:0 
哈哈,我明白了,谢谢各位!原来是自动补0惹的祸!
2012-09-13 00:49
快速回复:有人知道WIN32 API参数传递的详细过程和步骤吗?
数据加载中...
 
   



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

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