2009-07-23 53 views
1

对于我正在处理的项目,我希望使用WordNet对用户输入进行一些语言分类,并且我想使用Prolog版本的数据库。集成C#和Prolog

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

我也试过Prolog.Net,这看起来不太好。

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

有没有人有任何其他方式来整合C#和Prolog,或一些建议,以获得我已经尝试工作的解决方案的任何建议? OS是Windows Server 2008(64位),SWI Prolog是5.7.11版本。

+0

从错误我猜测,也许你有一个32-64位冲突,尝试编译一切为一个32位的东西也许看看会发生什么。 – 2009-07-23 14:53:06

+0

类似的问题,列出更多的替代品:http://stackoverflow.com/questions/181855/integrating-prolog-with-c – ThomasH 2009-12-24 23:10:57

回答

1

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

如果您当前正在使用任何CPU您的应用程序将在64位Windows上以64位运行。试图加载一个32位的DLL将会失败。