Вам необходимо создать проект с параметром/ZW, чтобы потребляя время выполнения расширения для Windows в статической библиотеке UWP:
- правой кнопкой мыши на проекте из проводника Solution
- Нажмите кнопку Свойства
- Выберите C/C++ -> Общие
- Установите "Потреблять среды выполнения Windows Extension" "Да (/ ZW)"
- Нажмите OK
После применения этой опции ссылки на Windows Runtime Extensions отображаются под ссылками на проект, и вы можете использовать классы времени выполнения Windows.
Однако, вы можете увидеть предупреждение компоновщика при построении библиотеки:
Debug \ pch.obj: предупреждение LNK4264: архивирование объектный файл, скомпилированный с /ZW в статическую библиотеку; обратите внимание, что при авторизации среды выполнения Windows типов не рекомендуется связать со статической библиотекой, которая содержит метаданные среды выполнения Windows, если вы используете линкер выпустила до того VS 2015 Update 2
Я тестировал сценарий, и она работала однако, в режиме отладки, я не уверен, что это лучший способ, поскольку опция/ZW отключена по умолчанию в отличие от других типов проектов UWP.
MSDN:
Вы можете использовать статическую библиотеку Уроженец C++ в UWP проекте, но некоторые ограничения и ограничения, чтобы быть в курсе. Начните с чтения в этой теме о статических библиотеках в C++/CX. Вы можете получить исходный код в своей статической библиотеке из вашего приложения UWP, но не рекомендуется создавать общедоступные типы ссылок в такой статической библиотеке. Если компиляции статической библиотеки с параметром/ZW, библиотекарь (на самом деле линкер в маскировке) предупреждает:
Может быть, вам следует рассмотреть возможность оборачивать весь код в Windows, время выполнения компонента или UWP DLL вместо этого.
Добавили ли вы ссылку на файл Windows.md в проекте? Какая ошибка вы получаете.Я использую статическую библиотеку в приложении UWP, и она работает, но некоторые параметры должны применяться. Дайте мне знать, какая ошибка вы получите – ZivS
Нет. У меня не было файла Windows.md в моем проекте. Где я могу найти информацию об этом? Ошибка, которую я получил, просто состоит в том, что эти пространства имен и классы не определены. –
Что я хочу сделать, так это создать статическую библиотеку некоторого кода OpenGLES, и для создания поверхностного объекта требуется Windows :: UI :: Core :: CoreWindow, но не нужно создавать окно. Итак, это похоже на решение OpengGLES2 Application (Android, iOS, Windows Universal), перемещающее код OpenGLES из App.cpp в xxx.WindowsUniversal.Application в библиотеку. –