2

尝试在 prolog 中加载使用 swipl-ld 生成的 DLL 时出现错误,引发异常的谓词是这个

initialization(shlib:use_foreign_library('C:/Users/valquiria.duarte/Desktop/dlog-server-0.3-beta-source/dlog-server/output/hash_swi.dll', install)),

例外是这个

ERROR: '$open_shared_object'/3: %1 is not a valid Win32 application.
4

1 回答 1

0

根据ComputerHope 上的此说明,当文件丢失(或损坏)时,Windows 可能会报告此错误。似乎文件路径在对use_foreign_library的调用中已完全指定,但值得仔细检查该路径是否正确,以了解 DLL 所在的位置。

您报告 ERROR 消息的参数形式似乎有点奇怪,其中 %1 是实际文件名的占位符。如果这就是错误在您的计算机上出现的方式,则表明在异常详细信息被抛出处理程序链时解析失败。

如果消息确实包含实际路径和文件名,那么您应该确认它们的准确性以及文件在给定路径上的存在。看来您已经使用 SWI-Prolog 在文件路径中使用正斜杠的首选语法正确调用了 use-foreign_library来分隔目录。但是,生成错误的是 Window 的操作系统(更具体地说,是与系统相关的实现dlopen()),并且生成的错误消息我希望包含包含反斜杠的文件路径和文件名。

于 2011-08-12T22:55:20.240 回答