我有一个程序在Visual Studio中连接SWI-Prolog.以前,我使用VS2010(XP),一切正常.然后我升级我的VS成为VS2012(Win7),现在我的代码有问题.
说到以下代码:
PlEngine.Initialize(param);
Run Code Online (Sandbox Code Playgroud)
它总是给我以下异常消息:
The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Run Code Online (Sandbox Code Playgroud)
任何人都可以发现我犯了什么错误,或者如果可能的话,我需要做一些修改,因为升级过程?
有关我的代码的其他信息:
任何帮助都非常感谢.
非常感谢
我正在编写一个VS包,我需要存储用户启动包的时间,以及用户关闭Visual Studio时的时间.
问题是,我不知道如何获得Visual Studio的结束事件.任何人都可以给我任何关于如何检测VS是否正在关闭的信息?
注意:当我从互联网上搜索时,我遇到了类似的问题:如何通过VSPackage取消ToolWindowPane或Visual Studio IDE关闭操作?,但是当我尝试它时,这个解决方案是在Package窗口关闭时检测并执行某些操作,并且无法检测Visual Studio何时关闭.
任何帮助都非常感谢.
谢谢
我正在写一个prolog程序,它将检查两个数学表达式是否实际相同.例如,如果我的数学表达式目标是:(a + b)+ c,那么以下任何表达式都被认为是相同的:
(A + B)+ C
一个+(B + C)
(B + A)+ C
(C + A)+ B
一个+(C + B)
C +(A + B)
和其他组合
当然,我不期望检查可能答案的组合,因为表达式可能比这更复杂.
目前,这是我的方法:例如,如果我想检查a + b*c是否与另一个表达式(如c*b + a)相同,那么我将两个表达式递归地存储为二进制表达式,我应该创建一个像ValueOf这样的规则会给我第一个表达式和第二个表达式的"值".然后我只检查两个表达式的"值"是否相同,然后我可以说两个表达式都是相同的.问题是,因为表达式的内容不是数字,而是标识符,我不能使用prolog"is"关键字来获取值.
有什么建议吗?
非常感谢
% represent a + b * c
binExprID(binEx1).
hasLeftArg(binEx1, a).
hasRightArg(binEx1, binEx2).
hasOperator(binEx1, +).
binExprID(binEx2).
hasLeftArg(binEx2, b).
hasRightArg(binEx2, c).
hasOperator(binEx2, *).
% represent c * b + a
binExprID(binEx3).
hasLeftArg(binEx3, c).
hasRightArg(binEx3, b).
hasOperator(binEx3, *).
binExprID(binEx4).
hasLeftArg(binEx4, binEx3).
hasRightArg(binEx4, a).
hasOperator(binEx4, +).
goal:- valueOf(binEx1, V), …Run Code Online (Sandbox Code Playgroud) 我尝试使用Roslyn获取数组值。例如,如果我有这样的C#代码:
int[] arrInt = {10, 20, 30, 40, 50};
Run Code Online (Sandbox Code Playgroud)
那么我如何获得arrInt [0]为10,arrInt [1]为20等信息。
c# ×3
prolog ×2
arrays ×1
interfacing ×1
logic ×1
predicate ×1
roslyn ×1
swi-prolog ×1
vspackage ×1