家伙!我目前正在开发新的跨平台应用程序(iOS,Android,UWP)。我有用c ++编写的UI图形库,使用freeglut用于opengGL。 问题是,我不知道如何在我的UWP应用程序中使用这个库。我已经阅读了很多关于OpenGL所有包装器的信息,但它们都是用于WPF或用C ++编写的。我也了解Microsoft ANGLE Project,但它也是用c ++编写的,但我需要用C#语言编写应用程序。
那么,如何使用排除freeglut修改我自己的库并将其导入我的C#应用程序?
顺便说一句,抱歉我的英语错误。
答案 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选项来原样使用本机代码。