我有一个从 ac# 组件触发的事件,另一个 c++ 组件需要注册此事件并捕获此事件。我使用 C++/CLI 作为中介来访问该组件的其他功能。虽然有一个代码可用于其他方式,但对于其他方式来说却不多。
问问题
697 次
1 回答
1
如果你有一个 C# 类
public class Foo
{
public event EventHandler MyEvent;
protected virtual void OnMyEvent(EventArgs e)
{
EventHandler handler = MyEvent;
if (handler != null)
{
handler(this, e);
}
}
}
和一个 C++/CLI 类
public ref struct Bar
{
public:
void handler(System::Object^ sender, System::EventArgs^ e)
{
}
}
那么您应该能够添加一个事件监听器,如下所示
Foo^ foo = gcnew Foo;
Bar^ bar = gcnew Bar;
foo->MyEvent += gcnew EventHandler(bar, &Bar::handler);
(未经测试)
于 2013-02-13T14:15:55.567 回答