微软ANGLE for uwp

时间:2016-10-08 11:46:33

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

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

那么,如何使用排除freeglut修改我自己的库并将其导入我的C#应用​​程序?

顺便说一句,抱歉我的英语错误。

2 个答案:

答案 0 :(得分:0)

您希望在UWP应用程序中使用旧版C ++程序集吗?

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

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

根据您的偏好,您使用哪种语言作为WinRT组件,C ++或C#,无论哪种方式,您都需要担心结构/类型mashalling and unmashalling.

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

同样适用于Microsoft Angle项目。

您可能会发现此post有用。

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

答案 1 :(得分:0)

根据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选项来原样使用本机代码。