【问题标题】:Microsoft ANGLE for uwp用于 uwp 的 Microsoft ANGLE
【发布时间】:2017-02-17 07:43:09
【问题描述】:

伙计们!我目前正在开发新的跨平台应用程序(iOS、Android、UWP)。我有用 c++ 编写的 UI 图形库,对 opengGL 使用 freeglut。 问题是,我不知道如何在我的 UWP 应用程序中使用这个库。我已经阅读了很多关于 OpenGL 的所有包装器的信息,但它们都用于 WPF 或用 C++ 编写。我也知道Microsoft ANGLE Project,但它也是用c++编写的,但我需要用C#语言编写应用程序。

那么,如何使用不包括 freeglut 的方式修改我自己的库并将其导入到我的 C# 应用程序中?

顺便说一句,对于我的英语错误,我深表歉意。

【问题讨论】:

    标签: c++ opengl-es uwp windows-10-universal universal


    【解决方案1】:

    根据https://msdn.microsoft.com/library/windows/desktop/jj714080.aspx,可以选择使用 DirectX 和一些本机 API 函数,包括 LoadLibrary 和 GetProcAddress 函数https://msdn.microsoft.com/library/windows/desktop/jj714080.aspx 这应该使您能够使用任何本机 dll。 您可以尝试制作 RuntimeComponent 项目并将其放在那里。您也可以尝试使用 clr oldsyntax 选项以按原样使用本机代码。

    【讨论】:

      【解决方案2】:

      所以你想在你的 UWP 应用程序中使用你的旧 C++ 程序集?

      您可以创建一个 Windows 运行时组件(通用 Windows)项目,您需要在其中包含程序集,并声明您想要公开的任意数量的 API,所有 API 都标有DllImport 属性。

      最终,此 WinRT 组件将执行 Platform Invoke,并作为旧代码和 UWP 应用程序之间的“包装”层。

      WinRT 组件使用哪种语言取决于您的偏好,C++ 还是 C#,无论哪种方式,您都需要担心 struct/type mashalling and unmashalling.

      完成上述操作后,您将能够在 UWP 应用程序中引用 WinRT 组件,并调用您在该程序集中声明的 API。

      同样的方法也适用于 Microsoft Angle 项目。

      您可能会发现这个post 很有用。

      最后一句话,您可能希望避免使用被禁止的 API,否则您的 UWP 应用将无法通过 Windows 应用商店认证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 1970-01-01
        • 2020-08-29
        • 2022-12-02
        • 2019-07-31
        • 1970-01-01
        相关资源
        最近更新 更多