Статические библиотеки (C++/CX)

Статическая библиотека, используемая в приложении универсальная платформа Windows (UWP), может содержать код C++ стандарта ISO, включая типы STL, а также вызовы API Win32, которые не исключены из платформы приложений среда выполнения Windows. Статическая библиотека использует компоненты среда выполнения Windows и может создавать компоненты среда выполнения Windows с определенными ограничениями.

Создание статических библиотек

Инструкции по созданию проекта зависят от установленной версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.

Создание статической библиотеки UWP в Visual Studio

  1. В строке меню выберите "Файл>нового проекта">, чтобы открыть диалоговое окно "Создать проект".

  2. В верхней части диалогового окна задайте для языка C++, установите для Платформы значение "Платформа" и задайте тип проекта uWP.

  3. В отфильтрованном списке типов проектов выберите статическую библиотеку (универсальная windows — C++/CX), а затем нажмите кнопку "Далее". На следующей странице укажите имя проекта и укажите расположение проекта при необходимости.

  4. Нажмите кнопку Создать, чтобы создать проект.

Создание статической библиотеки UWP в Visual Studio 2017 или Visual Studio 2015

  1. В строке меню выберите Файл >Создать >Проект. В разделе Visual C++>Windows universal выберите статическую библиотеку (универсальная windows).

  2. В области Обозреватель решенийоткройте контекстное меню для проекта и выберите пункт Свойства. В диалоговом окне "Свойства" на странице свойств>конфигурации C/C++ установите для параметра "Использовать расширение среда выполнения Windows" значение "Да" (/ZW).

При компиляции новой статической библиотеки при вызове API Win32, исключенном для приложений UWP, компилятор вызовет ошибку C3861 , "Идентификатор не найден". Чтобы найти альтернативный метод, поддерживаемый для среда выполнения Windows, см. статью "Альтернатива API Windows" в приложениях UWP.

При добавлении проекта статической библиотеки C++ в решение приложения UWP может потребоваться обновить параметры свойств проекта библиотеки, чтобы свойство поддержки UWP было задано как "Да". Без этого параметра код создает и ссылки, но возникает ошибка при попытке проверить приложение для Microsoft Store. Статическая библиотека должна компилироваться с теми же параметрами компилятора, что и проект, в котором она используется.

При использовании статической библиотеки, которая создает открытые классы ref , открытые классы интерфейсов или открытые классы значений, компоновщик выдает следующее предупреждение:

предупреждение LNK4264: архивирование файла объектов, скомпилированного с помощью /ZW в статическую библиотеку; обратите внимание, что при создании типов среда выполнения Windows не рекомендуется связываться со статической библиотекой, содержащей метаданные среда выполнения Windows.

Вы можете безопасно игнорировать предупреждение, только если статическая библиотека не создает среда выполнения Windows компоненты, используемые за пределами самой библиотеки. Если библиотека не использует компонент, который он определяет, компоновщик может оптимизировать реализацию, даже если общедоступные метаданные содержат сведения о типе. Это означает, что открытые компоненты в статической библиотеке будут скомпилированы, но не активируются во время выполнения. По этой причине любой среда выполнения Windows компонент, предназначенный для использования другими компонентами или приложениями, должен быть реализован в библиотеке динамической компоновки (DLL).

См. также

Работа с потоками и маршалинг