试图连接一个我们用来与 .NET 中的事物对话的 COM 库。在 VB6 中,同样的事情可以通过做
private withevents _monitor as new Application
然后我可以做
monitor_onPrintText(byval msg as string, byval draw as boolean)
它会起作用,只要在监视器端打印了一些东西,它就会触发事件并将东西发回给我们。但是,在 C# 中,我能够执行命令,但我没有像在 VB6 中那样恢复正常。我只是好奇我做错了什么,正如我所读到的一切
_monitor.onPrintText += onPrintText;
应该可以工作,但是我无法触发该事件。
我已经尝试过这个 codeproject 项目和MSDN以及一堆其他资源,但我无法让这该死的东西工作!这是代码的基础,我添加了通过导入 com 对象创建的所有三个“接口”,并且尝试了各种不同的组合。我的“启动”脚本应该返回一个真值,并触发 onPrintText 事件几次,其中包含一些消息(或者至少这就是它在 VB6 中所做的......)
using System;
using monitorLib;
public class MyClass
{
private Application _monitor;
public MyClass()
{
_monitor = new Application;
_monitor.onPrintText += onPrintText;
// Doing this runs a "script" which causes the
// event to fire whenever print is called from it.
_monitor.evaluate("run(\"startup\");");
}
public dynamic Evaluate(string pScript)
{
return _monitor.evaluate(pScript);
}
public void PrintText(string p_text, bool p_drawNow)
{
debug.print(p_text);
}
}