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,而不是一个数组.
展开
 我来答
百度网友5311d79
2015-01-12 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3113万
展开全部
返回的是一个数组,打印 $result[0] 看看。

帮助里说了:
DllCall返回一个包含函数返回值和所有参数拷贝的数组(包括可能被传递后修改的函数参数).
$return[0] = 函数的返回值
$return[1] = 参数1
$return[2] = 参数2
...
$return[n] = 参数n

------------------------------
If @error =0 Then
这条判断应该紧接在DllCall后面,应为@error获取的是上一条语句的错误码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式