Правильное имя для не-COM, не .NET DLL? - PullRequest
3 голосов
/ 19 февраля 2009

В мире Windows, как правильно называть товар. старомодная C ++ DLL с экспортированными функциями? Не COM DLL, не .NET DLL. Тип DLL, которую мы использовали для вызова путем вызова LoadLibrary () и GetProcAddress ()?

Я всегда называл их «плоскими DLL», потому что вызывающая сторона не может создавать экземпляры объектов из DLL, но каково правильное имя?

EDIT

Спасибо за ответы.

Просто «DLL» может быть технически правильным, но, где я работаю, все предполагают, что «DLL» означает COM, или, может быть, в толчке .NET, поэтому мне нужен термин, который точно определяет, что я имею в виду.

Ответы [ 8 ]

4 голосов
/ 19 февраля 2009

A .dll? Все эти другие вещи используют базовую функциональность, предоставляемую .dll, для выполнения своих задач. Может быть, сырой .dll, если вы хотите быть педантичным, но .dll должно быть хорошо.

3 голосов
/ 19 февраля 2009

Больше нет «правильного» имени, что есть «правильное» имя для «обычного автомобиля». (Я использую «простые DLL».

COM DLL, OCX, .NET DLL, ... все они DLL, с дополнительными функциями. Ничто не мешает вам, скажем, иметь DLL, к которой можно получить доступ как через COM, так и вручную LoadLibrary / GetProcAdress. Я видел это. Вы даже можете выставить один и тот же объект через «простой» необъективированный API.

2 голосов
/ 19 февраля 2009

Я с Чарльзом Грэмом. Они просто DLL. Ни больше, ни меньше.

Некоторые библиотеки DLL предоставляют API, позволяющие использовать их с определенными шаблонами программирования (например, библиотеки DLL, которые предоставляют DllGetClassObject и DllCanUnloadNow, могут использоваться для размещения COM-объектов (но существуют и другие способы размещения COM-объектов)).

2 голосов
/ 19 февраля 2009

«Нативный», вероятно, является наиболее распространенным термином, хотя «окна» или «консоль» более технически правильны, поскольку именно эти подсистемы могут использоваться («нативная» подсистема - это нечто иное). Я также слышал, что используется «C DLL», что означает то же самое, что и использование «плоской DLL».

Библиотека динамических ссылок - это общее понятие - «библиотека динамических ссылок Windows» отличается от * nix-эквивалента, а также от управляемых библиотек.

COM в этом контексте представляет собой нечто большее, чем просто соглашение об инкапсуляции - библиотеки DLL Windows могут содержать COM-серверы, равно как и переносимые исполняемые файлы (PE).

1 голос
/ 19 февраля 2009

Это «библиотека динамических ссылок». Иногда упоминается как «библиотека dynalink». В отличие от «библиотеки статических ссылок», где вы выбираете свой собственный яд. Вместо этого вы берете яд, который случайно устанавливается пользователем где-то на пути выполнения.

1 голос
/ 19 февраля 2009

Может быть «Обычная DLL». Это термин, который мы используем, но «DLL» также работает.

0 голосов
/ 30 июня 2013

Я согласен с тем, что существует необходимость в терминологии для описания DLL, которая не может быть выполнена как управляемый код (другими словами, требуется взаимодействие для использования управляемым кодом) и которая не может использоваться как объект COM. Много раз разработчики просто говорят DLL, и это неоднозначно. Да, совершенно справедливо называть библиотеку классов .Net библиотекой DLL, а внутрипроцессный сервер COM называть библиотекой DLL, но для целей коммуникации двусмысленно просто сказать DLL.

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

0 голосов
/ 19 февраля 2009

Я всегда просто называл их DLL, но я не оставался в мире C ++ / VB6 слишком долго.

...