C ++ to C # обработка событий - PullRequest
       35

C ++ to C # обработка событий

3 голосов
/ 30 сентября 2011

Итак, у меня есть мое C # приложение WinForm, из которого я вызываю мою C ++ CLI MFC dll библиотеку.

Но есть некоторые события в моей библиотеке C ++, даже эти события происходят в нативной (не CLI) части этой библиотеки. И мне нужно вызвать некоторый код из моего приложения на C # и получить некоторые данные, возможно, прямо там, на этом событии.

поэтому, когда эта нативная функция вызывается со стороны клиента:

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

Мне нужно принести данные из C # , поэтому мне нужно как-то зарегистрировать это как событие.

Ответы [ 2 ]

4 голосов
/ 30 сентября 2011

Итак, проблема в том, что вам нужно запускать код C # в ответ на событие MFC (или обратный вызов C ++), верно?

Почему вы не можете просто зарегистрировать собственный обработчик для собственного события / обратного вызова, которыйзатем просто вызывает событие .NET, которое может быть получено из C #.

0 голосов
/ 30 сентября 2011

Вы можете создать событие .NET из дескриптора события C ++ / CLI, а затем использовать его изначально.Просто используйте EventWaitHandle или производные AutoResetEvent и ManualResetEvent.

...