0

在将包含命令“发送”(xpce 图形)的 Prolog 程序加载到 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 特定命令的行,但我更想知道问题出在哪里以及如何绕过它。因此,我将不胜感激。

干杯,

4

1 回答 1

0

@显然是未知的!

它由 SWI home 目录中的 '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

感谢 Jan Wielemaker。

于 2010-04-06T18:36:06.030 回答