Correct name for non-COM, non-.NET DLL?

2019-05-11 10:52发布

In the Windows world, what is the correct name for a good. old-fashioned C++ DLL with exported functions? Not a COM DLL, not a .NET DLL. The kind of DLL that we used to invoke by calling LoadLibrary() and GetProcAddress()?

I've always called them "flat DLLs" because the caller cannot instantiate objects from the DLL, but what is the correct name?

EDIT

Thanks for the answers.

Just "DLL" may be technically correct, but where I work everyone assumes that "DLL" means COM, or maybe at a push .NET, so I need a term that distinguishes exactly what I mean.

8条回答
甜甜的少女心
2楼-- · 2019-05-11 11:35

I always just called them DLLs, but I didn't stay in th C++/VB6 world for too long.

查看更多
Deceive 欺骗
3楼-- · 2019-05-11 11:36

It's a "dynamic link library". Sometimes referred to as a "dynalink library". As opposed to a "static link library", where you choose your own poison. Instead you take the poison du jour, as randomly installed by the user somewhere on the execution path.

查看更多
The star\"
4楼-- · 2019-05-11 11:37

A .dll? All those other things use the basic functionality provided by a .dll to do their respective thing. Maybe a raw .dll if you want to be pedantic, but .dll should be fine.

查看更多
别忘想泡老子
5楼-- · 2019-05-11 11:38

There is no "correct" name anymore that there is a "correct" name for "plain car". (I do use "plain DLLs".

COM DLLs, OCXs, .NET DLLs,... they are all DLLs, with additional features on them. Nothing prevents you from, say, having a DLL that can be accessed both via COM or manual LoadLibrary/GetProcAdress. I've seen it. You can even expose the same object via a "plain" non-objectized API.

查看更多
一纸荒年 Trace。
6楼-- · 2019-05-11 11:43

May be 'A Regular DLL'. This is the term that we use but 'DLL' works as well.

查看更多
劳资没心,怎么记你
7楼-- · 2019-05-11 11:45

I agree that there is a need for terminology to describe a DLL that cannot be executed as managed code (in other words requires interop for use by managed code) and that cannot be used as a COM object. Many times developers just say DLL and that is ambiguous. Yes, it is totally valid to call a .Net Class library a DLL and to call a COM in-process server a DLL but for the purpose of communicating it is ambiguous to just say DLL.

See my article Native Windows Dynamic Link Libraries (DLLs) for more.

查看更多
登录 后发表回答