如何将从本机 c++ 的回调注册到 c#
How can i register callback from native c++ to c#
我正在处理一个用c#(WPF)编写UI的任务。还有一些其他模块是用本机 c++ 实现的。 我需要将 c++ 模块的回调注册到 c# 模块,通过它我可以获取任何变量(如字符串类型)的更新值。 例如: 在 c++ 中:
String str =" ";
如果 str 上的 c++ 模块进行了任何更改,例如 str= " 和"; 然后我需要将此更新的值发送到 c# 模块。
请告诉我如何做到这一点?
PS:C# 和 C++ 模块在不同的 DLL 中。如果 dll 属性中有任何问题需要更改,那对我来说也可以。
提前谢谢。
我总是通过使用用 C# 声明并在 C# 中实现的 COM 接口(当您需要处理从 C++ 到 C# 的回调时)和C++ 何时相反。 您必须在 C# 和 COM 可见的接口中声明
[ComVisible(true)]
[GuidAttribute("12347261-8AF6-45ae-BAFD-6DFF7A8798E4")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface ICOMInterface
{ *** }
然后基于.tlb,.tlh在C++中实现接口
相关文章:
- 关于回调和注册回调的混淆 (C++)
- 如何在SOCI中注册数据库故障转移回调?
- 如何将从本机 c++ 的回调注册到 c#
- 如何防止 C API 注册表中的 Lua 回调被垃圾回收?
- 注册和调用 DLL 回调的正确方法是什么
- 共享指针和回调注册的结构.由于我之外的原因调用回调时,原始指针值发生了变化
- 在 Linux 中退出时如何注册进程的回调
- 用于回调注册的 SFINAE
- Openssl 线程安全回调函数注册,包括直接调用和间接调用
- 在 c++ 中使用 RAII 进行回调注册
- 注册用于提升io_service的每个对象的回调函数是什么?
- Cython:在DLL中注册用于回调的Python函数
- 注册回调时不进行输出
- 在clCreateContext()中注册的回调中用C++抛出异常是否安全
- 正在注销通过register_callback()注册的回调
- C++OOP注册回调函数(typedef问题)
- 创建一个注册回调的抽象基类的正确方法
- 在openGL中注册回调时出现编译错误
- std::函数作为回调,可以取消注册
- 使用std::bind将类成员函数注册为函数的回调