Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
An event and event handler can be defined in one assembly, and consumed by another assembly.
Legacy Code Example
The following sample defines the event:
// mcppv2_events8.cpp
// compile with: /LD /clr
using namespace System;
public delegate void Del(String^ s);
public ref class Source {
public:
event Del^ Event;
void Fire(String^ s) {
Event(s);
}
};
The following client code consumes the event:
// mcppv2_events9.cpp
// compile with: /clr
#using "mcppv2_events8.dll"
using namespace System;
ref class Receiver {
public:
void Handler(String^ s) {
Console::WriteLine(s);
}
};
int main() {
Source^ src = gcnew Source;
Receiver^ rc1 = gcnew Receiver;
Receiver^ rc2 = gcnew Receiver;
src -> Event += gcnew Del(rc1, &Receiver::Handler);
src -> Event += gcnew Del(rc2, &Receiver::Handler);
src->Fire("hello");
src -> Event -= gcnew Del(rc1, &Receiver::Handler);
src -> Event -= gcnew Del(rc2, &Receiver::Handler);
}
Output
hello
hello