所以我有一个具有以下事件的 C# 类:
public class CSClient
{
public delegate void OnMessageHandler(Object sender, EventArgs e);
public event OnMessageHandler OnOptionsEvent;
}
然后我有一个 C++/CLI 类,我想为其订阅 OnOptionsEvent。
我尝试过这样的事情:
void CSClientWrapper::Start()
{
GCHandle h = GCHandle::FromIntPtr(IntPtr(_impl));
CSClient^ obj = safe_cast<CSClient^>(h.Target);
__hook(&CSClient::OnOptionsEvent, obj, &CSClientWrapper::OnOptions);
}
void CSClientWrapper::OnOptions(Object^ sender, EventArgs^ args)
{
}
错误 C2039:“add_OnOptionsEvent”:不是“CSClient”的成员
错误 C2750:“CSClient::OnMessageHandler”:不能在引用类型上使用“新”;改用“gcnew”
我对 C++CLI 完全陌生,所以我怀疑这是我所缺少的一些非常基本的东西。