我正在學習DirectX,但我不太瞭解C++,因此我決定改用SharpDX。但我堅持在C++的這一部分,他們使用TypedEventHandler函數的地址,但我不知道如何在C#中編寫?誰能幫忙?如何將C++中的函數地址寫入C#?
ref class App sealed : public IFrameworkView
{
public:
virtual void Initialize(CoreApplicationView^ AppView)
{
AppView->Activated += ref new TypedEventHandler
<CoreApplicationView^, IActivatedEventArgs^>(this, &App::OnActivated);
}
virtual void SetWindow(CoreWindow^ Window) {}
virtual void Load(String^ EntryPoint) {}
virtual void Run() {}
virtual void Uninitialize() {}
void OnActivated(CoreApplicationView^ CoreAppView, IActivatedEventArgs^ Args)
{
CoreWindow^ Window = CoreWindow::GetForCurrentThread();
Window->Activate();
}
};
我轉換到目前爲止
internal class App : IFrameworkView
{
public void Initialize(CoreApplicationView AppView)
{
// Call OnActivated() when the Activated event is triggered
AppView.Activated += new TypedEventHandler<CoreApplicationView, IActivatedEventArgs>(this,this.OnActivated);
}
public void SetWindow(CoreWindow Window) {}
public void Load(String EntryPoint) {}
public void Run() {}
public void Uninitialize() {}
public void OnActivated(CoreApplicationView CoreAppView, IActivatedEventArgs Args)
{
CoreWindow Window = CoreWindow.GetForCurrentThread();
Window.Activate();
}
}
你在哪裏找到'裁判new'?這不合法。其餘的代碼是C++/CLI,而不是標準的C++。 C++/CLI應該非常直接地轉換成C#。 –
@KenKin:不,C++/CLI使用'gcnew'。這是「C++/CX」嗎? –
是的。修復標籤。 –