Разница между: родной DLL, UWP DLL и C ++ / CLI DLL - PullRequest
0 голосов
/ 17 мая 2019

Я очень хорошо знаю, что такое ванильная DLL-библиотека Win32 (без UWP, без RT, без CLR).Мне также известны библиотеки DLL на основе C ++ / CLI, которые поддерживают программы, совместимые с .NET, написанные на любом языке.

Что меня смущает, так это два типа DLL UWP:

  • Универсальная Windows - C ++ / CX
  • Универсальная Windows - Компонент среды выполнения Windows

Когда создается DLL на основе компонента UWP, онадобавляет (позволяет) экспортируемые классы (часть вопроса: являются ли они классами жалоб CLR?).Dependency Walker показывает, что он связан с некоторыми нестандартными / нестандартными DLL-библиотеками.

Когда создается библиотека на основе UWP CX, это просто собственная DLL.Обозреватель зависимостей показывает, что он связан с Kernel32.DLL и т. Д.

Таким образом, я заключаю, что:

  • C ++ / CX - это UWP DLL, которая похожа на собственную DLL
  • Компонент времени выполнения UWP DLL похож на DLL типа C ++ / CLI.

Так что же представляют собой эти два новых типа DLL UWP?

1 Ответ

1 голос
/ 03 июня 2019

Оба они являются нативным кодом.C ++ / CX имеет некоторый синтаксис с C ++ / CLI, но не имеет связи с .NET.Компонент времени выполнения Windows - это повторно используемый компонент, который можно вызывать из других приложений на любом поддерживаемом языке (C ++, C #, VB, JavaScript).Другой проект - это просто отдельное приложение.

Обратите внимание, что зависимости CLR присутствуют только в сборках отладки (из-за некоторых зависимостей отладки XAML);в сборках Release нет зависимостей CLR.

...