Библиотеки 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 в проекте
Откройте контекстное меню для проекта, в котором будет использоваться библиотека DLL, и выберите пункт Свойства. На странице Общие свойства нажмите кнопку Добавить новую ссылку .
Компонент среда выполнения Windows состоит из DLL-файла и WINMD-файла, содержащего метаданные. Обычно эти файлы расположены в одной и той же папке. В левой области диалогового окна Добавление ссылки нажмите кнопку Обзор и перейдите к расположению DLL-файла и его WINMD-файла. Дополнительные сведения см. в пакетах SDK для расширений.
Стандартные библиотеки DLL
Вы можете создать стандартную библиотеку DLL для кода C++, который не использует или не создает общедоступные типы среда выполнения Windows и использует его из приложения UWP. Используйте тип проекта библиотеки динамической компоновки (DLL), если вы просто хотите перенести существующую библиотеку DLL для компиляции в этой версии Visual Studio, но не преобразуйте код в проект компонента среда выполнения Windows. При выполнении следующих действий библиотека DLL будет развернута вместе с исполняемым файлом приложения в APPX-пакете.
Создание стандартной библиотеки DLL в Visual Studio
В строке меню выберите "Файл", "Создать", "Проект" и выберите шаблон библиотеки динамических ссылок (DLL).
Введите имя проекта и нажмите кнопку ОК .
Добавьте код. Не забудьте добавить выражение
__declspec(dllexport)
для функций, которые планируется экспортировать, например__declspec(dllexport) Add(int I, in j);
Добавьте
#include winapifamily.h
этот файл заголовка из пакета SDK для Windows для приложений UWP и задайте макросWINAPI_FAMILY=WINAPI_PARTITION_APP
.
Указание ссылки на проект стандартной библиотеки DLL из того же решения
Откройте контекстное меню для проекта, в котором будет использоваться библиотека DLL, и выберите пункт Свойства. На странице Общие свойства нажмите кнопку Добавить новую ссылку .
В левой области выберите Решениеи установите соответствующий флажок в правой области.
В файлах исходного кода добавьте оператор
#include
для файла заголовков библиотеки DLL.
Указание ссылки на двоичный файл стандартной библиотеки DLL
Скопируйте DLL-файл, LIB-файл и файл заголовков в нужное расположение, например в папку текущего проекта.
Откройте контекстное меню для проекта, в котором будет использоваться библиотека DLL, и выберите пункт Свойства. На странице Свойства конфигурации> Компоновщик> Ввод добавьте LIB-файл в качестве зависимости.
В файлах исходного кода добавьте оператор
#include
для файла заголовков библиотеки DLL.
Перенос существующей библиотеки DLL Win32 для совместимости приложений UWP
Создайте проект типа DLL (универсальной версии Windows) и добавьте в него существующий исходный код.
Добавьте
#include winapifamily.h
этот файл заголовка из пакета SDK для Windows для приложений UWP и задайте макросWINAPI_FAMILY=WINAPI_PARTITION_APP
.В файлах исходного кода добавьте оператор
#include
для файла заголовков библиотеки DLL.