| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:ptr byte=dword ? 求高手指教
取消只看楼主 加入收藏
爱末流
Rank: 2
等 级:论坛游民
帖 子:101
专家分:16
注 册:2011-6-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
ptr byte=dword ? 求高手指教
如题:ptr byte=dword ? 求高手指教

 ;函数声明原型
MSG_BOX PROTO out_pbuffer:ptr byte,out_size:dword,t_size:dword

out_pbuffer:ptr byte 第一个参数是字节指针类型。 而我改成DWORD后,  用addr 字符串变量的地址传入。  在OD下反汇编看都是一样。

有些API函数需要传入字符串指针的。而且在WIN32汇编下一般被定义成了 dword 用来存放32位指针。  而我改成ptr byte 也等价的。
都是 PUSH 压入地址

我想问的是从直观的角度来看ptr byte 是否就是DWORD(API函数下的 需要传入地址的那种)



 


搜索更多相关主题的帖子: 字符串 
2012-08-10 23:37
爱末流
Rank: 2
等 级:论坛游民
帖 子:101
专家分:16
注 册:2011-6-3
收藏
得分:0 
回复 3楼 zklhp
在高级语言里面限制的很厉害,而在汇编里面就自由多了。比如 DWORD 变量就可以接受任何的32位指针类型。在API函数调用的时候就直接将该变量入栈了。就是地址入栈了
最终API函数会引用这个地址。
而在C++ 里面要传指针,就必须声明接受的参数类型也就是对应该指针类型。 你貌似不能传入指针的时候,用 int 32位变量来接受传入的地址。
而在汇编里面就非常自由,一个DOWRD貌似可以接受任何类型变量的地址。在C++里面就必须声明和变量地址相同类型的指针来接受地址。
2012-08-11 15:45
快速回复:ptr byte=dword ? 求高手指教
数据加载中...
 
   



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

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