typedef void(*VoidDelegate)();
class ParentStub: public Parent
{
public:
VoidDelegate onEventDelegate;
virtual void OnEvent()
{
onEventDelegate();
}
ParentStub(VoidDelegate onEvent): onEventDelegate(onEvent) {}
};
ParentStub* CreateParentStub(VoidDelegate onEvent) { return new ParentStub(onEvent); }
internal delegate void VoidDelegate();
[DllImport(DllName)]
internal static extern IntPtr CreateParentStub(VoidDelegate onEvent);
public class Parent: NativeObject
{
private VoidDelegate onEventHandler;
public Parent()
{
this.onEventHandler = new VoidDelegate(onEventStub);
SetHandle(NativeMethods.CreateParentStub(this.onEventHandler));
}
private void onEventStub() { OnEvent(); }
protected abstract void OnEvent();
}
public Child: Parent
{
protected override void OnEvent()
{
Console.WriteLine("Hello, World!");
}
}
Страница создана за 0.053 сек. Запросов: 23.