Различие между .dll и .exe?

Мое взятие является бывшим becauase, у Вас может только быть 1 функция window.onload, в то время как встроенные блоки сценария Вы имеете число n .

85
задан ЯegDwight 30 March 2010 в 10:18
поделиться

8 ответов

EXE-файл виден системе как обычный исполняемый файл Win32. Его запись точка относится к небольшому загрузчику, который инициализирует среду выполнения .NET и сообщает это для загрузки и выполнения сборки, содержащейся в EXE. DLL видна системе как Win32 DLL, но, скорее всего, без точки входа. Среда выполнения .NET хранит информацию о содержащихся сборки в собственном заголовке.

dll - это набор многоразовых функции, где в качестве .exe является исполняемый файл, который может вызывать эти aspx

67
ответ дан 24 November 2019 в 08:08
поделиться

Главное точное различие между DLL и EXE в том, что у DLL нет точки входа, а у EXE есть. Если вы знакомы с C ++, то увидите, что сборка EXE имеет функцию входа main (), а DLL - нет:)

-2
ответ дан 24 November 2019 в 08:08
поделиться

EXE - это исполняемая программа, тогда как DLL - это файл, который может загружаться и выполняться программами динамически.

0
ответ дан 24 November 2019 в 08:08
поделиться

EXE виден системе как обычный исполняемый файл Win32.Его запись точка относится к небольшому загрузчику, который инициализирует среду выполнения .NET и сообщает это для загрузки и выполнения сборки, содержащейся в EXE. DLL видна системе как Win32 DLL, но, скорее всего, без точки входа. Среда выполнения .NET хранит информацию о содержащихся сборки в собственном заголовке.

dll - это набор многоразовых функции, где в качестве .exe является исполняемый файл, который может вызывать эти функции

2
ответ дан 24 November 2019 в 08:08
поделиться

Я не знаю, почему все отвечают на это вопрос в контексте .NET. Вопрос был общим и нигде не упоминал .NET.

Основные отличия заключаются в следующем:

EXE

  1. EXE всегда запускается в собственном адресном пространстве, т. Е. Это отдельный процесс.
  2. Назначение EXE - запускать отдельное приложение своего собственный.

DLL

  1. DLL всегда требует для запуска исполняемого файла хоста. т.е. , он никогда не сможет работать в собственном адресном пространстве.
  2. Назначение DLL - иметь набор методов / классов, которые могут быть повторно использованы из другого приложения.
  3. DLL - это реализация Microsoft разделяемой библиотеки. .

Формат файлов DLL и exe по существу одинаков. Windows распознает разницу между DLL и EXE через PE-заголовок в файле. Подробнее о заголовке PE Вы можете прочитать в этой статье на MSDN

120
ответ дан 24 November 2019 в 08:08
поделиться

Этот ответ был немного более подробным, чем я думал, но прочтите его.

DLL:
В большинстве случаев DLL-файл представляет собой библиотеку . Есть несколько типов библиотек, динамические и статические - читайте о различиях . DLL означает динамическую ссылку библиотеку , которая сообщает нам, что это часть программы, но не целиком. Он состоит из многократно используемых программных компонентов ( библиотеки ), которые вы можете использовать для более чем одной программы . Имейте в виду, что всегда можно использовать исходный код библиотеки во многих приложениях с помощью копирования и вставки, но идея DLL / статической библиотеки заключается в том, что вы можете обновить код библиотеки и в то же время обновить все приложения, использующие ее, - без компиляции.

Например:
Представьте, что вы создаете компонент графического интерфейса Windows , например кнопку . В большинстве случаев вы захотите повторно использовать написанный вами код, потому что это сложный, но общий компонент - вы хотите, чтобы его использовали многие приложения, но вы не хотите предоставлять им исходный код. code Вы не можете скопировать и вставить код кнопки в каждую программу, поэтому вы решили создать DL-библиотеку (DLL) .

Эта «кнопка» библиотека требуется EXE резакам для запуска, и без нее они не будут работать, потому что они не знают, как создать кнопку, только как с ней разговаривать.

Точно так же DLL не может быть запущена - запускаться, потому что это только часть программы, но не имеет информации, необходимой для создания «процесса» .

EXE:
Исполняемый файл - это программа . Он знает, как создать процесс и как общаться с DLL. Ему требуется DLL для создания кнопки, и без нее приложение не запускается - ОШИБКА.

надеюсь, что это поможет ....

19
ответ дан 24 November 2019 в 08:08
поделиться

The .exe is the program. The .dll is a library that a .exe (or another .dll) may call into.

What sakthivignesh says can be true in that one .exe can use another as if it were a library, and this is done (for example) with some COM components. In this case, the "slave" .exe is a separate program (strictly speaking, a separate process - perhaps running on a separate machine), but one that accepts and handles requests from other programs/components/whatever.

However, if you just pick a random .exe and .dll from a folder in your Program Files, odds are that COM isn't relevant - they are just a program and its dynamically-linked libraries.

Using Win32 APIs, a program can load and use a DLL using the LoadLibrary and GetProcAddress API functions, IIRC. There were similar functions in Win16.

COM is in many ways an evolution of the DLL idea, originally concieved as the basis for OLE2, whereas .NET is the descendant of COM. DLLs have been around since Windows 1, IIRC. They were originally a way of sharing binary code (particularly system APIs) between multiple running programs in order to minimise memory use.

1
ответ дан 24 November 2019 в 08:08
поделиться

Разница в том, что EXE имеет точку входа, «основной» метод, который будет запускаться при выполнении.

Код в DLL необходимо вызвать из другого приложения.

28
ответ дан 24 November 2019 в 08:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: