2009-07-23 56 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將會失敗。