[已解决]DllCll调c++写的dll如何调?
本帖最后由 gudam 于 2011-7-18 15:17 编辑在a.dll中有一个方法:
void a1(wchar_t * test, int& test2)
请问我应该怎样调这个dll,才能获得test和test2的值呢? 搜索论坛
{:face (197):} 搜索论坛
hzxymkb 发表于 2011-7-15 14:46 http://www.autoitx.com/images/common/back.gif
我搜了一下,但是没有找到应该怎样写。
http://www.autoitx.com/forum.php?mod=viewthread&tid=18816&highlight=DllCall 回复 1# gudam
$dll = DllOpen("a.dll")
DllCall($dll, "none", "a1")
Local $test
Local $test2=0
DllCall($dll, "none", "GetCanExitFlag","wstr",$test,"int",$test2)
DllClose($dll)
MsgBox(0,"",$test2)
我这样写马上就出错了,估计是$test和$test2的设置有错 没人能指点一下嘛 自己解决了- -。
$dll = DllOpen("a.dll")
$test=DllStructCreate("wchar test")
$test2=0
$calldata=DllCall($dll, "none:cdecl", "a1","ptr",DllStructGetPtr($test),"int*",$test2)
$test2=$calldata
MsgBox(0,"",DllStructGetData($test,"test"))
MsgBox(0,"",$test2)
DllClose($dll)
页:
[1]