【发布时间】:2017-07-24 19:11:13
【问题描述】:
我在将 Prolog 连接到 C# 时遇到问题。
Visual Studio 给出以下错误:
“'System.IO.FileNotFoundException' 类型的未处理异常 发生在 SwiPlCs.dll"
我真的不知道如何处理。
我认为它来自我在代码中给出的路径:
using System;
using SbsSW.SwiPlCs;
namespace ptest
{
class Program
{
static void Main(string[] args)
{
//Environment.SetEnvironmentVariable(@"C:\Program Files\swipl", @"C:\Program Files\swipl\boot64.prc"); // or boot64.prc
var curPath = Environment.GetEnvironmentVariable("C:\\Program Files\\swipl\\bin");
Environment.SetEnvironmentVariable(@"C:\Program Files\swipl\bin", @"C:\Program Files\swipl\boot;C:\Program Files\swipl;" + curPath);
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("finshed!");
}
}
}
}
请帮助我。非常感谢。
【问题讨论】:
-
欢迎来到 SO。当您提出问题时,提供更多信息而不是更少信息会有所帮助。
-
注意:SwiPlCs_1.1.60605.0.zip 发布于
2014.04.29 13:00的最后一个版本是测试版。 -
感兴趣的:
GitHubSWI-Prolog/contrib-swiplcs -Swi-cs-pl的源代码
标签: c# visual-studio prolog ffi swi-prolog