我尝试将 C# 与 prolog 接口我已使用此链接: 在此处输入链接描述
我已添加 SwiPlCs.dll 作为对我的项目的引用,然后使用文档中的第一个代码
using System;
using SbsSW.SwiPlCs;
namespace HelloWorldDemo
{
class Program
{
static void Main(string[] args)
{
//Environment.SetEnvironmentVariable("SWI_HOME_DIR", @"the_PATH_to_boot32.prc");
if (!PlEngine.IsInitialized)
{
String[] param = { "-q" }; // suppressing informational and banner messages
PlEngine.Initialize(param);
PlQuery.PlCall("assert(father(martin, inka))");
PlQuery.PlCall("assert(father(uwe, gloria))");
PlQuery.PlCall("assert(father(uwe, melanie))");
PlQuery.PlCall("assert(father(uwe, ayala))");
using (PlQuery q = new PlQuery("father(P, C), atomic_list_concat([P,' is_father_of ',C], L)"))
{
foreach (PlQueryVariables v in q.SolutionVariables)
Console.WriteLine(v["L"].ToString());
Console.WriteLine("all child's from uwe:");
q.Variables["P"].Unify("uwe");
foreach (PlQueryVariables v in q.SolutionVariables)
Console.WriteLine(v["C"].ToString());
}
PlEngine.PlCleanup();
Console.WriteLine("finshed!");
}
}
}
}
但总是有一个例外..据说:
指定的模块无法找到。(来自 HRESULT 的异常:0x8007007E
他们在 SWI-prolog 中谈到了这个错误:
如果找不到 libswipl.dll 或其依赖项之一,您将收到类似 System.IO.FileNotFoundException: Das angegebene Modul wurde nicht gefunden 的错误。(Ausnahme von HRESULT:0x8007007E)
我已将 libswipl.dll 从程序 bin 复制到我项目中的 bin/debug 文件夹中,但它仍然是同样的问题。
我该怎么办??谢谢