Библиотеки DLL (C++/CX)

Visual Studio можно использовать для создания стандартной библиотеки DLL Win32 или библиотеки DLL компонента среда выполнения Windows, которую можно использовать приложениями универсальная платформа Windows (UWP). Стандартная библиотека DLL, созданная с помощью версии Visual Studio или компилятора Microsoft C++, который раньше, чем Visual Studio 2012, может не загружаться правильно в приложении UWP и не передавать тест проверки приложения в Microsoft Store.

библиотеки DLL компонентов среда выполнения Windows

В почти всех случаях, когда вы хотите создать библиотеку DLL для использования в приложении UWP, создайте ее как компонент среда выполнения Windows с помощью шаблона проекта этого имени. Вы можете создать проект компонента среда выполнения Windows для библиотек DLL с общедоступными или частными типами среда выполнения Windows. Доступ к компоненту среда выполнения Windows можно получить из приложений, написанных на любом языке, совместимом с среда выполнения Windows. По умолчанию параметры компилятора для проекта компонента среда выполнения Windows используют параметр /ZW. WINMD-файл должен иметь одно имя с корневым пространством имен. Например, экземпляр класса с именем A.B.C.MyClass может быть создан, только если он определен в файле метаданных с именем A.winmd, A.B.winmd или A.B.C.winmd. Имя DLL-файла не обязательно должно соответствовать имени WINMD-файла.

Дополнительные сведения см. в статье Создание компонентов среды выполнения Windows на C++.

Ссылка на сторонний двоичный файл компонента среда выполнения Windows в проекте

  1. Откройте контекстное меню для проекта, в котором будет использоваться библиотека DLL, и выберите пункт Свойства. На странице Общие свойства нажмите кнопку Добавить новую ссылку .

  2. Компонент среда выполнения Windows состоит из DLL-файла и WINMD-файла, содержащего метаданные. Обычно эти файлы расположены в одной и той же папке. В левой области диалогового окна Добавление ссылки нажмите кнопку Обзор и перейдите к расположению DLL-файла и его WINMD-файла. Дополнительные сведения см. в пакетах SDK для расширений.

Стандартные библиотеки DLL

Вы можете создать стандартную библиотеку DLL для кода C++, который не использует или не создает общедоступные типы среда выполнения Windows и использует его из приложения UWP. Используйте тип проекта библиотеки динамической компоновки (DLL), если вы просто хотите перенести существующую библиотеку DLL для компиляции в этой версии Visual Studio, но не преобразуйте код в проект компонента среда выполнения Windows. При выполнении следующих действий библиотека DLL будет развернута вместе с исполняемым файлом приложения в APPX-пакете.

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

  1. В строке меню выберите "Файл", "Создать", "Проект" и выберите шаблон библиотеки динамических ссылок (DLL).

  2. Введите имя проекта и нажмите кнопку ОК .

  3. Добавьте код. Не забудьте добавить выражение __declspec(dllexport) для функций, которые планируется экспортировать, например __declspec(dllexport) Add(int I, in j);

  4. Добавьте #include winapifamily.h этот файл заголовка из пакета SDK для Windows для приложений UWP и задайте макрос WINAPI_FAMILY=WINAPI_PARTITION_APP.

Указание ссылки на проект стандартной библиотеки DLL из того же решения

  1. Откройте контекстное меню для проекта, в котором будет использоваться библиотека DLL, и выберите пункт Свойства. На странице Общие свойства нажмите кнопку Добавить новую ссылку .

  2. В левой области выберите Решениеи установите соответствующий флажок в правой области.

  3. В файлах исходного кода добавьте оператор #include для файла заголовков библиотеки DLL.

Указание ссылки на двоичный файл стандартной библиотеки DLL

  1. Скопируйте DLL-файл, LIB-файл и файл заголовков в нужное расположение, например в папку текущего проекта.

  2. Откройте контекстное меню для проекта, в котором будет использоваться библиотека DLL, и выберите пункт Свойства. На странице Свойства конфигурации> Компоновщик> Ввод добавьте LIB-файл в качестве зависимости.

  3. В файлах исходного кода добавьте оператор #include для файла заголовков библиотеки DLL.

Перенос существующей библиотеки DLL Win32 для совместимости приложений UWP

  1. Создайте проект типа DLL (универсальной версии Windows) и добавьте в него существующий исходный код.

  2. Добавьте #include winapifamily.h этот файл заголовка из пакета SDK для Windows для приложений UWP и задайте макрос WINAPI_FAMILY=WINAPI_PARTITION_APP.

  3. В файлах исходного кода добавьте оператор #include для файла заголовков библиотеки DLL.