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