gpt4 book ai didi

c# - 从 C++ DLL 在 C# 中触发事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:55 25 4
gpt4 key购买 nike

我有一个与 Cisco 服务器 (UCCX) 通信的非托管 C++ DLL。

它通过 TCP/IP 向服务器发送消息和从服务器接收消息。现在它接收到一些类型的消息,其中包含一些需要发送到 C# GUI 的参数,该 GUI 将在屏幕上显示这些参数。

请告诉我从这个 DLL 触发 C# 事件的有效方法。

最佳答案

http://blogs.msdn.com/b/davidnotario/archive/2006/01/13/512436.aspx似乎回答了你的问题。您在 C# 端使用委托(delegate),在 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");
}
);
}

关于c# - 从 C++ DLL 在 C# 中触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com