Что такое собственные библиотеки DLL?

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

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


person Swanand    schedule 22.10.2010    source источник


Ответы (5)


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

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

person Kev    schedule 22.10.2010
comment
Они называются Native, потому что код, который они содержат, является родным для процессора системы и не требует перевода. - person Bevan; 23.10.2010
comment
@bevan - разве это не то, что я только что сказал? - person Kev; 23.10.2010
comment
Я думал, вы упустили, что Native относится к системе, в которой размещена DLL. Перечитав, возможно, я ошибся. - person Bevan; 24.10.2010

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

person OlimilOops    schedule 22.10.2010

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

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

См. мою статью Нативные библиотеки динамической компоновки Windows (DLL) ) для получения дополнительной информации.

person user34660    schedule 18.05.2013

Насколько я понимаю, «родная DLL» будет, например, базовой dll Win32. DLL, содержащая неуправляемый код.

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

person ChrisF    schedule 22.10.2010

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

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

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

person IamIC    schedule 22.10.2010
comment
Забавно, ваша цель по ссылке показывает именно этот пост как совпадение номер 1. Эта бесконечная рекурсия может привести к... переполнению стека ;-) - person R. Schreurs; 18.04.2013