Что такое Native DLL?
Когда я читал о DLL на StackOverflow, я много раз встречался над словом "Родные библиотеки DLL". Я нашел вопросы относительно них, но я не мог понять, что такое "родная DLL".
Что такое родная DLL?
Ответы
Ответ 1
Внутренняя DLL обычно представляет собой DLL, содержащую исходный код с прямым исполняемым кодом (например, найденный в API Win32), в отличие от, например, управляемых (MSIL), которые содержат код, который потребляется, и JIT, скомпилированный в инструкции на основе процессора среда выполнения, такая как .NET CLR.
В .NET также возможно создать смешанную библиотеку DLL, которая содержит как собственный двоичный код, так и управляемый код.
Ответ 2
этот термин вышел, когда был разработан управляемый код, который поступает из сборников .net, чтобы различать управляемый и неуправляемый = собственный код.
каждая сборка .net получает "nativied" JIT-компилятором во время выполнения. это означает, что он переводится в код asm, который "изначально" понятен процессору.
Ответ 3
Термин "родная" DLL был первоначально использован до того, как существовал управляемый код. Первоначально он предназначался для ссылок на библиотеки DLL, которые не являются COM-библиотеками. Он предназначен для ссылок на библиотеки DLL, подобные тем, что были в Windows.
Обратите внимание, что Kev сказал: "В .NET также возможно создать смешанную DLL-версию, которая содержит как собственный двоичный код, так и управляемый код". но это не имеет значения; такая DLL не является родной DLL, потому что у нее есть метаданные CLI (.Net). Кроме того, DLL смешанного режима может быть разработана только с использованием С++/CLI; ни один другой язык не поддерживает его.
Подробнее см. мою статью Встроенные библиотеки динамических ссылок Windows (DLL).
Ответ 4
Из того, что я понимаю, "родная DLL" будет базовой dll Win32, например. DLL, которая содержит не управляемый код.
С .NET вы пишете управляемые сборки. Они вызывают код Windows на базовом уровне, который является тем же, что и вызываемое не управляемым приложением.
Ответ 5
Быстрый просмотр этих результатов поиска MSDN ответит на ваш вопрос:
http://social.msdn.microsoft.com/Search/en-US?query=define:%20native%20dll&ac=8
Это простая DLL, которая содержит машинный код, а не MSIL.