找回密码
 加入
搜索
查看: 2127|回复: 3

[AU3基础] [已解决]如何声明缓冲区变量!

[复制链接]
发表于 2010-8-15 20:25:13 | 显示全部楼层 |阅读模式
本帖最后由 ioni2001 于 2010-8-18 14:20 编辑

VB 的语法是 Dim   sReadBuffer   As   String   *   2048
AU3里面整么实现呢?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-8-16 11:52:21 | 显示全部楼层
额,顶上去~!
发表于 2010-8-16 12:10:32 | 显示全部楼层
本帖最后由 pusofalse 于 2010-8-16 13:06 编辑

同是只用一句DllStructCreate("char[2048]")就可以了。在实际的API调用中,可以如下:
$tBuffer = DllStructCreate("char[2048];dword")
$pBuffer = DllStructGetPtr($tBuffer)
$pBytesRead = DllStructGetPtr($tBuffer, 2)
$iResult = DllCall("Kernel32.dll", "bool", "ReadFile", "handle", $hFileOpened, "ptr", $pBuffer, "dword", 2048, "ptr", $pBytesRead, "ptr", 0)
MsgBox(0, DllStructGetData($tBuffer, 2), DllStructGetData($tBuffer, 1))
或者不必创建缓存区,直接调用如下:
$iResult = DllCall("Kernel32.dll", "bool", "ReadFile", "handle", $hFileOpened, "str", "", "dword", 2048, "dword*", 0, "ptr", 0)
MsgBox(0, $iResult[4], $iResult[2])

评分

参与人数 2金钱 +80 贡献 +3 收起 理由
水木子 + 50 我也学习了
afan + 30 + 3 学习了

查看全部评分

 楼主| 发表于 2010-8-18 14:20:15 | 显示全部楼层
谢谢,问题解决了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 10:37 , Processed in 0.098582 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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