【发布时间】:2015-01-31 16:42:29
【问题描述】:
我是 Prolog 和 C# 的新手。当我尝试将 Prolog 与 C# 集成时,我发现了一些错误,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SbsSW.SwiPlCs;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// Environment.SetEnvironmentVariable("SWI_HOME_DIR", @"the_PATH_to_boot32.prc"); // or boot64.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 (var 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 children from uwe:");
q.Variables["P"].Unify("uwe");
foreach (PlQueryVariables v in q.SolutionVariables)
Console.WriteLine(v["C"].ToString());
}
PlEngine.PlCleanup();
Console.WriteLine("finished!");
}
}
}
}
它没有运行,在运行之前我添加了引用 SwiPlCs.dll。但它显示错误“未处理 FileNotFoundException,找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)”。
那么谁能帮我解决这个错误?
我得到了这个编码here
【问题讨论】:
-
你是说你是both Prolog 和 C#的新手吗?如果是这样,在您将它们整合在一起之前,我真的会尝试让至少其中一个(最好是两个)感到舒服。顺便说一下,异常应该显示找不到哪个文件 - 在错误消息中查找所有详细信息。
-
有一个类似的问题和类似的错误。请尝试stackoverflow.com/questions/13556887/…
-
顺便说一句,还有一个nuget包stackoverflow.com/questions/14555200/…
-
@JonSkeet 我对 Prolog 有基本的了解,并且我使用 C# 完成了一些项目。但整合对我来说很难。不管怎样,谢谢你的建议。
标签: c# prolog ffi swi-prolog