Я пытаюсь использовать 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 ответ1

1

Я наконец обнаружил проблему. Я использую 64-битный AutoHotkey, и DLL я пытаюсь использовать 32-битный. Как только я перешел на 32-битный AutoHotkey, он смог найти DLL без проблем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .