7

Cisco Server (UCCX) と通信している umanaged C++ DLL があります。

TCP/IP 経由でこのサーバーとの間でメッセージを送受信します。現在、受信するいくつかのタイプのメッセージがあり、これらのパラメーターを画面に表示する C# GUI に送信する必要があるいくつかのパラメーターが含まれています。

この DLL から C# でイベントをトリガーする効率的な方法を教えてください。

4

2 に答える 2

10

http://blogs.msdn.com/b/davidnotario/archive/2006/01/13/512436.aspxがあなたの質問に答えているようです。C# 側ではデリゲートを使用し、C++ 側では標準コールバックを使用します。

C++ 側:

typedef void (__stdcall *PFN_MYCALLBACK)();
int __stdcall MyUnmanagedApi(PFN_ MYCALLBACK callback);

C#側

public delegate void MyCallback();
[DllImport("MYDLL.DLL")] public static extern void MyUnmanagedApi(MyCallback callback);

public static void Main()
{
  MyUnmanagedApi(
    delegate()
    {
      Console.WriteLine("Called back by unmanaged side");
    }
   );
}
于 2012-09-25T05:59:44.303 に答える