.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 オブジェクトをインポートして作成した 3 つの「インターフェイス」をすべて追加し、あらゆる種類のさまざまな組み合わせを試しました。私の「起動」スクリプトは true を返し、途中でいくつかのメッセージとともに 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);
}
}