1

对于我正在从事的项目,我想使用WordNet对用户输入进行一些语言分类,并且我想使用数据库的 Prolog 版本。

我试过P#,它工作得相当好,但似乎无法处理 WordNet 数据库的庞大规模。它可以编译我想要使用的最小文件(218 kB),但是当我尝试编译两个较大的文件(分别为 2.3 和 7.3 MB)时,它在大约半小时的工作后失败并且 Windows 弹出“出了点问题。向 Microsoft 发送报告?” 对话。

我也尝试过Prolog.Net,但它似乎不太好用。

最后,我尝试了SWI-Prolog 的C# 绑定,但无法让它们正常工作。当我尝试运行示例代码时,它在这PLEngine.Initialise()一步失败,声称它尝试加载的东西(我假设的 DLL)是无效的 Win32 应用程序(BadImageFormatException)。

有没有人对集成 C# 和 Prolog 的其他方法有任何建议,或者有一些建议来获得我已经尝试过的解决方案?操作系统为 Windows server 2008(64 位),SWI Prolog 版本为 5.7.11。

4

1 回答 1

1

也许您在 64 位 Windows 上遇到 32 位 SWI-Prolog 的问题。如果您的平台目标是任何 CPU,则可能是您的问题的原因。您可以通过打开 C# 项目的属性页面来解决此问题。选择Build选项卡并将Platform target更改为x86

如果您当前使用Any CPU,您的应用程序将在 64 位 Windows 上以 64 位运行。尝试加载 32 位 DLL 将失败。

于 2009-07-23T14:55:56.097 回答