2013-10-16 32 views
1

我正在使用遊戲引擎爲Windows Phone 8應用程序生成本機C++項目(DirectX)。爲了集成諸如in-app-billing之類的東西,但是每次在引擎中觸發特定的C++方法時,我都需要調用C#方法。有一個名爲calling a C# method from C++ in WP8的SO線程,顯然是相反的:「一個實際調用C++方法的基於C#的應用程序」。從Windows Phone 8的C++中調用C#方法(真實)

現在我被卡住的地方是我用C++/CX public ref class sealed使用Visual Studio 2012 Express for Windows Phone創建了一個「Visual C++ - > Windows Phone運行時組件」。這引用了具有設置爲「Windows運行時組件」的項目屬性的「Visual C# - > Windows Store類庫」的.winmd文件。有趣的是,我必須在Visual Studio 2012 Express for Windows 8(不是Windows Phone)中創建它,因爲VS for WP8不提供生成.winmd文件的選項。編譯我的遊戲我得到以下error message

沒有爲.winmd文件'... \ InAppBilling.winmd'提供實現文件。要在應用清單中啓用註冊信息的生成,請在項目文件的winmd引用項目上指定'Implementation'元數據。

如何從C++中調用C#方法?我不需要像DLL,繼承,委託等任何奇特的東西。只是一個普通的靜態調用,可以工作,其他任何東西都將在C#中處理。

回答

1

這隻有在創建XAML and Direct3D app時纔有可能。在這種情況下,您可以使用另一個SO問題中的Windows運行時方法從C++調用C#。

由於無法在手機上創建C#Windows運行時組件(與Windows應用商店應用不同),因此無法從本機C++項目調用C#方法。

+0

但這不可能是真的。我是否應該在C++中實施應用內購買?哈哈:D –

+1

其實這是事實。應用內購買API可以通過本機C++訪問:http://msdn.microsoft.com/en-us/library/windowsphone/develop/windows.applicationmodel.store.currentapp.aspx – Anton

+1

@Anton但要小心未實現的API對於Windows Phone 8.例如http://msdn.microsoft.com/en-us/library/windowsphone/develop/windows.applicationmodel.store.currentapp.getappreceiptasync.aspx –

相關問題