要解决AutoIt中的DllCall调用不返回值的问题,您可以尝试以下解决方法:
示例代码:
; 声明DLL函数的返回类型为int
DllCall("mydll.dll", "int", "MyFunction")
示例代码:
; 使用引用参数传递参数
Local $param = "Hello"
DllCall("mydll.dll", "none", "MyFunction", "str", $param)
; 使用指针参数传递参数
Local $param = "Hello"
DllCall("mydll.dll", "none", "MyFunction", "ptr", DllStructGetPtr(DllStructCreate("char[6]")), "str", $param)
示例代码:
; 正确的函数名和参数名
DllCall("mydll.dll", "none", "MyFunction", "int", $param)
; 错误的函数名或参数名
DllCall("mydll.dll", "none", "myfunction", "int", $param)
示例代码:
; 使用stdcall调用约定
DllCall("mydll.dll", "none", "MyFunction", "int", $param, "stdcall")
; 使用cdecl调用约定
DllCall("mydll.dll", "none", "MyFunction", "int", $param, "cdecl")
通过检查这些方面,您应该能够解决AutoIt中的DllCall调用不返回值的问题。如果问题仍然存在,请确保您的DLL文件正确加载,并且函数名称和参数与DLL函数的定义匹配。