0

コマンド 'send' (xpce グラフィックス) を含む Prolog プログラムを C++ プログラムにロードすると、次のようなエラー メッセージが表示されます。

Syntax Error: Operator Expected.

エラーの原因となるコマンドの例を次に示します。

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

C++ および Prolog プログラムとのインターフェイスに plld.exe ユーティリティを使用したときに、同じエラーが発生していました。当時、問題は plld が何らかの理由で xpce グラフィックスと互換性がないことだと考えていました。

しかし、Prolog ソース ファイルを C++ ファイルに参照 (ロード) したので、次を使用します。

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

これらのエラー メッセージがまだ表示されます。xpce 固有のコマンドを含む行をコメント アウトすることもできますが、問題の内容と回避方法を知りたいです。だから、私は助けていただければ幸いです。

乾杯、

4

1 に答える 1

0

@どうやら不明!

これは、SWI ホーム ディレクトリの 'rc' ファイルによってロードされ、XPCE バインディングを実現します。以下を使用して、これを手動でロードする必要があります。

consult( swi( 'plwin.rc' ) )

すべての pl および xpce ソース ファイルが正常にコンパイルされました。

Prolog で記述されたコグニティブ アーキテクチャを C++ で記述されたロボット シミュレータに接続するために、C++ と Prolog を接続しています。私は SWI バージョン 5.8.0 を使用しているため、C++ プログラムで次の行を使用してそれを実現する必要がありました。

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

このコマンドの結果は次のとおりです。

swi(plwin.rc) compiled into link_xpce

Jan Wielemaker に感謝します。

于 2010-04-06T18:36:06.030 に答える