Код: Выделить всё
public:
delegate int ReceiveEventHandler(int id, array^ data);
static event ReceiveEventHandler^ OnReceive
{
void add(ReceiveEventHandler^ d)
{
_receiveHandler += d;
}
void remove(ReceiveEventHandler^ d)
{
_receiveHandler -= d;
}
int raise(int id, array^ data)
{
if (_receiveHandler)
{
return _receiveHandler->Invoke(id, data);
}
}
private:
ReceiveHandler^ _receiveHandler;
В C# на это событие подписывается:
Код: Выделить всё
Wrapper.OnReceive
+= new Wrapper.ReceiveEventHandler(ReceiveHandler);
Но в другом сценарии, когда мое приложение .NET Framework A запускается из другого приложения B, это не работает.
Код: Выделить всё
BТеперь, когда событие запускается из Cpp, ReceiveHandler не вызывается, и я понятия не имею, почему.
Обработчик событий реализован и подписан в A, кстати.
Подробнее здесь: https://stackoverflow.com/questions/798 ... -app-insid
Мобильная версия