2010-04-05 40 views
0

一旦裝載到C++程序包含命令「發送」(xpce圖形)一個Prolog程序,我得到類型的錯誤消息:XPCE Prolog的命令導致錯誤在VS2008 C++

Syntax Error: Operator Expected. 

下面是一個例子會導致該錯誤的命令:

send(Dialog, append, button(continue, message(@prolog, clear_my_blackboard))), 

我以前當我用plld.exe工具,用於連接我的C++和Prolog的程序來獲得同樣的錯誤。當時,我認爲問題在於plld出於某種原因與xpce圖形不兼容。

但現在,我使用諮詢(負載)我的Prolog的源文件添加到我的C++文件:

PlCall("consult(myPrologFile.pl)"); 

我仍然得到這些錯誤信息。我可以註釋掉包含特定於xpce的命令的行,但我更想知道問題是什麼以及如何繞行它。所以,我會很感激任何幫助。

乾杯,

回答

0

@顯然是未知的!

它由SWI主目錄中的'rc'文件加載並實現XPCE綁定。我應該用手加載這個,使用:

consult(swi('plwin.rc')) 

我所有的pl和xpce源文件都已經編譯成功。

我正在連接C++和Prolog,將用Prolog編寫的認知架構連接到用C++編寫的機器人模擬器。我使用SWI版本5.8.0,所以我只好用下面一行在我的C++程序,實現的是:

PlCall("consult(swi('plwin.rc'))"); 

這個命令了:

swi(plwin.rc) compiled into link_xpce 

感謝揚Wielemaker。