我正在尝试使用 IBM 的 EHLLAPI 与其 Personal Communicator 终端仿真器进行交互。我将其指向 API 的位置,并指定 api 名称,如下所示:
hllapi(ByRef functionCode, ByRef data, ByRef length, ByRef returnCode)
{
dllfunction := "C:\EHLAPI32.dll\HLLAPI"
datatype := "Int *"
rvalue := DllCall(dllfunction
, datatype, functionCode
, "Str" , data
, datatype, length
, datatype, returnCode)
If ErrorLevel
MsgBox hllapi() returned %ErrorLevel%
Return rvalue
}
然而,它只是返回 -3,表示:
-3:无法访问指定的 DllFile。如果没有为 DllFile 指定显式路径,则该文件必须存在于系统的 PATH 或 A_WorkingDir 中。如果用户缺乏访问该文件的权限,也可能会发生此错误。
我检查了权限,应该没有任何问题。我还尝试将 dll 复制到我的 C:/ 驱动器的根目录以避免任何访问问题,但这也没有解决问题。为什么找不到文件?
答案1
我终于发现了问题所在。我使用的是 64 位 AutoHotkey,而我尝试使用的 dll 是 32 位的。一旦我切换到 32 位 AutoHotkey,它就能毫无问题地找到 dll。