Подтвердить что ты не робот

Что такое Native DLL?

Когда я читал о DLL на StackOverflow, я много раз встречался над словом "Родные библиотеки DLL". Я нашел вопросы относительно них, но я не мог понять, что такое "родная DLL".

Что такое родная DLL?

4b9b3361

Ответ 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 на базовом уровне, который является тем же, что и вызываемое не управляемым приложением.