Autoit 调用DLL文件 15
Local$result=DllCall("user32.dll","int","MessageBox","hwnd",0,"str","若干文字","str","若干标...
Local $result = DllCall("user32.dll", "int", "MessageBox", "hwnd", 0, "str", "若干文字", "str", "若干标题", "int", 0)
以上这个脚本是Autoit调用User32.dll文件,DLLCall的返回值是result。但是我打印$result,却啥也没有
现在有个疑问,在脚本中DLLCall的返回值比如说这边是result ,这个返回值是dll中北调用function A return的返回值吗?(也就是说如果我在DLL的function A中return ret,这个ret的值会传给DLLCall的返回值吗)
我现在问题是这杨子的
#include <Array.au3>
Local $result=DllCall("MyDll.dll","int::cdecl","Add","int",3,"int",4)
ConsoleWrite("The result is"&$result)
If IsArray($result)=1 Then
ConsoleWrite("$result is an array")
Else
ConsoleWrite("$result is not an array")
EndIf
If @error =0 Then
ConsoleWrite("call dll function is OK")
Else
ConsoleWrite("call dll function is not ok")
EndIf
这段代码
在我的机器上面域不能不行@ERROR=0 说明调用dll文件没有问题
但是$result 却为0,而不是一个数组. 展开
以上这个脚本是Autoit调用User32.dll文件,DLLCall的返回值是result。但是我打印$result,却啥也没有
现在有个疑问,在脚本中DLLCall的返回值比如说这边是result ,这个返回值是dll中北调用function A return的返回值吗?(也就是说如果我在DLL的function A中return ret,这个ret的值会传给DLLCall的返回值吗)
我现在问题是这杨子的
#include <Array.au3>
Local $result=DllCall("MyDll.dll","int::cdecl","Add","int",3,"int",4)
ConsoleWrite("The result is"&$result)
If IsArray($result)=1 Then
ConsoleWrite("$result is an array")
Else
ConsoleWrite("$result is not an array")
EndIf
If @error =0 Then
ConsoleWrite("call dll function is OK")
Else
ConsoleWrite("call dll function is not ok")
EndIf
这段代码
在我的机器上面域不能不行@ERROR=0 说明调用dll文件没有问题
但是$result 却为0,而不是一个数组. 展开
1个回答
展开全部
返回的是一个数组,打印 $result[0] 看看。
帮助里说了:
DllCall返回一个包含函数返回值和所有参数拷贝的数组(包括可能被传递后修改的函数参数).
$return[0] = 函数的返回值
$return[1] = 参数1
$return[2] = 参数2
...
$return[n] = 参数n
------------------------------
If @error =0 Then
这条判断应该紧接在DllCall后面,应为@error获取的是上一条语句的错误码。
帮助里说了:
DllCall返回一个包含函数返回值和所有参数拷贝的数组(包括可能被传递后修改的函数参数).
$return[0] = 函数的返回值
$return[1] = 参数1
$return[2] = 参数2
...
$return[n] = 参数n
------------------------------
If @error =0 Then
这条判断应该紧接在DllCall后面,应为@error获取的是上一条语句的错误码。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询