【问题标题】:Calling a C# method from C++ in Windows Phone 8 (for real)在 Windows Phone 8 中从 C++ 调用 C# 方法(真实)
【发布时间】:2013-10-24 15:22:39
【问题描述】:

我正在使用一个游戏引擎,它为 Windows Phone 8 应用程序生成 本机 C++ 项目 (DirectX)。但是,要集成诸如应用内计费之类的东西,每次在引擎中触发特定的 C++ 方法时,我都需要调用 C# 方法。有一个名为 calling a C# method from C++ in WP8 的 SO 线程,显然正好相反:“基于 C# 的应用程序实际上调用了 C++ 方法”。

我现在遇到的问题是我使用 Visual Studio 2012 Express for Windows Phone 创建了一个带有 C++/CX public ref class sealed 的“Visual C++ -> Windows Phone 运行时组件”。这引用了“Visual C# -> Windows 应用商店类库”的 .winmd 文件,该文件的项目属性设置为“Windows 运行时组件”。有趣的是,我不得不在 Visual Studio 2012 Express for Windows 8(不是 Windows Phone)中创建它,因为 VS for WP8 不提供生成 .winmd 文件的选项。编译我的游戏我得到以下error message

没有为 .winmd 文件“...\InAppBilling.winmd”提供实现文件。要在应用清单中生成注册信息,请在项目文件中的 winmd 引用项上指定“实施”元数据。

如何在 C++ 中调用 C# 方法?我不需要任何花哨的东西,如 DLL、继承、委托等。只需一个简单的静态调用即可,其他一切都将在 C# 中处理。

【问题讨论】:

    标签: windows-phone-8 c++-cx


    【解决方案1】:

    这只有在您创建XAML and Direct3D app 时才有可能。在这种情况下,您可以使用另一个 SO 问题中的 Windows 运行时方法从 C++ 调用 C#。

    由于无法在手机上创建 C# Windows 运行时组件(与 Windows 应用商店应用不同),因此无法从本机 C++ 项目调用 C# 方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多