Почему я получаю -3 на AutoHotKey DllCall?
Я пытаюсь использовать EHLLAPI от IBM для взаимодействия с их эмулятором терминала 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 без проблем.