Что такое родные библиотеки DLL? - PullRequest
12 голосов
/ 22 октября 2010

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

Что такое нативная DLL?

Ответы [ 5 ]

16 голосов
/ 22 октября 2010

Собственные библиотеки DLL, как правило, представляют собой библиотеки DLL, содержащие непосредственно исполняемый код необработанного процессора (например, найденный в Win32 API), в отличие, например, от управляемой (MSIL), которая содержит код, который используется, и JIT компилируется в инструкции собственного процессора среда выполнения, например .NET CLR.

В .NET также можно создавать библиотеки DLL смешанного режима, которые содержат как собственный двоичный код, так и управляемый код.

4 голосов
/ 22 октября 2010

этот термин появился, когда был изобретен управляемый код из сборок .net, чтобы различать управляемый и неуправляемый = собственный код. каждая сборка .net «нативируется» JIT-компилятором во время выполнения. это означает, что он переводится в ассемблерный код, «понятный» процессору.

3 голосов
/ 18 мая 2013

Термин «родная DLL» изначально использовался до существования управляемого кода.Первоначально он предназначался для ссылки на библиотеки DLL, которые не являются библиотеками COM.Он предназначен для ссылки на DLL, подобные тем, которые изначально были в Windows.

Обратите внимание, что Кев сказал: " В .NET также можно создавать DLL смешанного режима, которые содержат как собственный двоичный код, так и управляемый код."но это не имеет значения;такая DLL не является нативной DLL, потому что она имеет метаданные CLI (.Net).Кроме того, DLL-файлы смешанного режима могут быть разработаны только с использованием C ++ / CLI;ни один другой язык не поддерживает его.

Подробнее см. мою статью Собственные библиотеки динамических ссылок Windows (DLL) .

2 голосов
/ 22 октября 2010

Быстрый просмотр результатов поиска MSDN ответит на ваш вопрос:

http://social.msdn.microsoft.com/Search/en-US?query=define:%20native%20dll&ac=8

Это простая DLL, которая содержит машинный код, а не MSIL.

2 голосов
/ 22 октября 2010

Из того, что я понимаю, "родная DLL" будет базовой Win32 dll, например.DLL-библиотека, содержащая неуправляемый код.

. С помощью .NET вы пишете управляемые сборки.Они будут вызывать код Windows базового уровня, который будет вызываться неуправляемым приложением.

...