ioni2001 发表于 2010-8-15 20:25:13

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

本帖最后由 ioni2001 于 2010-8-18 14:20 编辑

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

ioni2001 发表于 2010-8-16 11:52:21

额,顶上去~!

pusofalse 发表于 2010-8-16 12:10:32

本帖最后由 pusofalse 于 2010-8-16 13:06 编辑

同是只用一句DllStructCreate("char")就可以了。在实际的API调用中,可以如下:$tBuffer = DllStructCreate("char;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, $iResult)

ioni2001 发表于 2010-8-18 14:20:15

谢谢,问题解决了!
页: [1]
查看完整版本: [已解决]如何声明缓冲区变量!