首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将C++回调函数传递到COM进程外方法

问将C++回调函数传递到COM进程外方法
EN

Stack Overflow用户
提问于 2020-11-04 02:59:42
回答 1查看 73关注 0票数 0

关于将C++回调传递到进程内COM方法的问题已经得到了解答。但同样的技术不适用于进程外的使用。

我有一个C#接口,它有一个用两个参数注册回调/委托的方法。

代码语言:javascript
复制
void ProcessNotification(ConsoleNotificationType type, IntPtr parameter);

此C#接口是使用进程外COM配置(exe文件)注册的。现在我想向该方法传递一个C++回调函数,但Visual Studio给我一个错误:

代码语言:javascript
复制
InvalidFunctionPointerInDelegate

那么,如何将我的C++回调函数传递给接口的注册回调函数呢?

EN

回答 1

Stack Overflow用户

发布于 2020-11-04 06:02:50

在COM中没有任何东西可以让你这么简单地做这件事。你甚至不能在我能想到的任何编程范例中做到这一点。一个进程中的指针在另一个进程中是没有意义的。

正式的答案是定义一个回调接口,并在实现对象上传递对该接口的引用,而不是传递一个简单的函数指针。当然,您还必须确保接口可以被代理。(或者,您也可以在您的服务器上实现IConnectionPointContainer,这基本上是相同的想法。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64668935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档