我正在使用遊戲引擎爲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#中處理。
但這不可能是真的。我是否應該在C++中實施應用內購買?哈哈:D –
其實這是事實。應用內購買API可以通過本機C++訪問:http://msdn.microsoft.com/en-us/library/windowsphone/develop/windows.applicationmodel.store.currentapp.aspx – Anton
@Anton但要小心未實現的API對於Windows Phone 8.例如http://msdn.microsoft.com/en-us/library/windowsphone/develop/windows.applicationmodel.store.currentapp.getappreceiptasync.aspx –