Joo 发表于 2012-11-27 18:13:43

DllCall如何传递指向指针的指针char**参数?

DLL里面的函数如
int WriteFile(char** fileName )

使用的参数是指向指针的指针,请问DllCall如何传递指向指针的指针char**参数?

我使用了DllStructCreate 和DllStructGetPtr,但是还是不行。请问哪位大神有示例或知道这个该怎么传?非常感谢!!!

$FNStruct = DllStructCreate("char fns;")
DllStructSetData($FNStruct, "fns", "test123456")

DllCall($dll, "int:cdecl","WriteFile", "ptr", DllStructGetPtr($FNStruct))

Joo 发表于 2012-11-27 18:14:34

在线等大神回答,谢谢!!!

Joo 发表于 2012-11-27 19:07:32

没人吗............................

edisonx 发表于 2012-11-27 19:31:30

本帖最后由 edisonx 于 2012-11-27 19:32 编辑

試試這個吧


$s = DllStructCreate("ptr ppfname;ptr pfname;charfname") ; struct ptr { char fname)

; p1 = address of fname
$p1 = dllStructGetptr($s, 3) ;p1 = address of fname
dllStructSetData($s, 2, $p1) ;set "address of fname" to pfname

;p2 = address of p1
$p2 = DllStructGetPtr($s, 2)
dllStructSetData($s, 1, $p1)

ConsoleWrite("p1 = " & $p1 & @CRLF)
ConsoleWrite("p2 = " & $p2 & @CRLF)

netegg 发表于 2012-11-27 21:10:10

http://blog.sina.com.cn/s/blog_65db99840100lwhs.html

Joo 发表于 2012-11-28 12:03:35

谢谢各位,我试试去~~~

jdd3 发表于 2012-11-30 11:30:22

学习学习学习学习

au3x 发表于 2012-12-3 08:37:44

哇,我连楼主的主题都不懂{:face (394):}
页: [1]
查看完整版本: DllCall如何传递指向指针的指针char**参数?