C++;到C#事件处理

C++;到C#事件处理,c#,c++,event-handling,c++-cli,C#,C++,Event Handling,C++ Cli,因此,我得到了我的C#WinForm应用程序,从中我调用了我的C++climfcdll库 但是我的C++库中有一些强>事件>强,甚至这些事件都发生在这个库的本地(非CLI)部分。我需要从我的C#应用程序中调用一些代码,并获取一些可能就在这个事件中的数据 因此,当从客户端调用本机函数时: bool __stdcall ClassName::WorkQuery() { ...... switch(pp->code) { case

因此,我得到了我的C#WinForm应用程序,从中我调用了我的C++climfcdll

<>但是我的C++库中有一些<>强>事件>强,甚至这些事件都发生在这个库的本地(非CLI)部分。我需要从我的C#应用程序中调用一些代码,并获取一些可能就在这个事件中的数据

因此,当从客户端调用本机函数时:

bool __stdcall ClassName::WorkQuery()
{
         ......
        switch(pp->code)
        {
        case READCOMPLEX:
                       ..........

我需要从C#中获取数据,因此我需要以某种方式将其注册为事件。

您可以从C++/CLI事件句柄创建.NET事件,然后以本机方式使用它。只需使用EnviaTayle或派生的AutoReTeEvices和MaunalReSeTebug .< /P> < P>,问题是您需要响应于MFC事件(或C++回调)运行C代码,对吗?
为什么不能只向本机事件/回调注册一个本机处理程序,然后它只调用一个.NET事件,它可以从C#中使用。

您的事件是什么样子的?我认为事件是一个.net事件,而不是C++事件…你有任何可以共享的代码签名吗?所以我的本地C++部分运行的服务器(甚至不是我的代码)和标准的C++函数在客户端请求一些数据时调用。那么,你所说的“事件”是什么意思?这是一个公共财产,应该像活动一样运作吗?如果是的话,你能分享它的签名吗?或者,你只是想知道什么时候调用某个C++函数(内部)?我只想调用这个函数的C++部分而不处理这个函数本身,我甚至不确定是否能够处理本机C++函数。我之所以叫它,是因为它发生在随机时间;这个答案似乎是一个很好的解决方案。可能是一个代码示例。不,我已经有了一个函数,当发生某些事情时会调用它。我如何将事件附加到它?你把事件和事件混淆了。在非托管的WIN32世界中,事件是发生了某些事情的通知,不要与C#“event”对象混淆。EventWaitHandle是WIN32事件的C版本,可以用来监听原始事件,然后调用你的C“事件”。@MahmoudAl Qudsi:我很确定你是把事件和事件混淆起来的人。这个问题对内核事件没有任何要求。