Microsoft ANGLE для uwp

ребята! В настоящее время я работаю над новым кроссплатформенным приложением (iOS, Android, UWP). У меня есть графическая библиотека для пользовательского интерфейса, написанная на c ++, использующая freeglut для opengGL.
Проблема в том, что я не знаю, как использовать эту библиотеку в моем приложении UWP. Я прочитал много информации обо всех оболочках для OpenGL, но все они для WPF или написаны на C ++. Я также знаю о проекте Microsoft ANGLE, но он также написан на c ++, но мне нужно написать приложение на языке C #.

Итак, как я могу изменить свою собственную библиотеку, используя исключение freeglut, и импортировать ее в мое приложение C #?

Кстати, извините за ошибки в моем английском.

0

Решение

Итак, вы хотите использовать свою унаследованную сборку C ++ в своем приложении UWP?

Вы можете создать проект компонента среды выполнения Windows (Universal Windows), в который необходимо включить сборку и объявить столько API-интерфейсов, сколько вы хотите выставить, все помеченные знаком DllImport приписывать.

В конце концов, этот компонент WinRT сделает Платформа Invoke, и работает как слой «обертки» между вашим прежним кодом и приложением UWP.

Это зависит от ваших предпочтений, какой язык вы используете для компонента WinRT, C ++ или C #, в любом случае вам нужно беспокоиться о struct / type смешивать и разрушать.

После того, как вы закончите с вышеупомянутым, вы сможете ссылаться на компонент WinRT в вашем приложении UWP и вызывать API, которые вы объявили в этой сборке.

То же самое работает и для проекта Microsoft Angle.

Вы можете найти это сообщение полезно.

И последнее слово: вы можете избежать использования запрещенных API, иначе ваше приложение UWP не пройдет сертификацию Windows Store.

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, чтобы использовать нативный код как есть.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector