B4rr4cuda

|
Posted: Tue Oct 09, 2007 00:48 Post subject: |
|
|
Очень заинтересовался этим вопросом, появился азарт. Погуглил немного...
Wiki говорит:
Quote: | DLL (англ. Dynamic-link library — динамически подключаемая библиотека) — понятие операционной системы Microsoft Windows; динамическая библиотека, позволяющая многократное применение различными программными приложениями. K DLL относятся также элементы управления ActiveX и драйвера. В мире UNIX аналогичные функции выполняют т. н. shared objects («разделяемые объекты»).
Формат файлов DLL придерживается тех же соглашений, что и формат исполняемых файлов EXE, сочетая код, таблицы и ресурсы. |
Обратите внимание на выделенное.
MSDN говорит:
Quote: | A dynamic-link library (DLL) is a module that contain functions and data that can be used by another module (application or DLL). |
Т.е. любой модуль, будь то приложение или библиотека, содержащий функции или данные, которые могут быть использованны другим приложением или библиотекой, попадает под определение DLL.
НО тот же MSDN уточняет:
Quote: |
Even though DLLs and applications are both executable program modules, they differ in several ways.
To the end-user, the most obvious difference is that DLLs are not programs that can be directly executed. From the system's point of view, there are two fundamental differences between applications and DLLs:
[1] An application can have multiple instances of itself running in the system simultaneously, whereas a DLL can have only one instance.
[2] An application can own things such as a stack, global memory, file handles, and a message queue, but a DLL cannot. |
Т.е. есть два глобальных различия между DLL и EXE:
[1] Приложение (EXE) может ( может - трактовать как имеет возможность) быть запущенно в нескольких экземплярах одновременно.
[2] Приложение может обладать собственным стеком, памятью, указателями и очередью сообщений, а DLL не может.
Кто докажет что EXE с експортами - DLL, "пусть первый бросит в меня камень" © О. Бендер |
|