Согласно этой заметке на ComputerHope , Windows может сообщить об этой ошибке, если файл отсутствует (или поврежден). Похоже, что путь к файлу полностью указан в вызове use_foreign_library , но стоит дважды проверить правильность пути относительно места расположения DLL.
Кажется немного странным, что вы сообщили о параметрической форме сообщения ERROR, где% 1 является заполнителем для фактического имени файла. Если именно так и возникла ошибка на вашем компьютере, это говорит о том, что произошла ошибка при разборе сведений об исключительной ситуации, поскольку они были выброшены в цепочку обработчиков.
Если сообщение содержит , содержит фактический путь и имя файла, то вам следует подтвердить их точность и существование файла по указанному пути. Кажется, вы правильно вызвали use-foreign_library , используя предпочитаемый SWI-Prolog синтаксис прямой косой черты в пути к файлу для разделения каталогов. Однако именно операционная система Windows (точнее, зависящая от системы реализация dlopen()
) генерирует ошибку, и в результате появляется сообщение об ошибке, которое, как я ожидаю, будет содержать путь к файлу и имя файла с обратными слешами.