.net – Correct name for non-COM, non-.NET DLL

comdllnetwindows

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.

Best Answer

"Native" is probably the most common term, though "windows" or "console" are more technically correct, since these are the subsystems likely to be used (the "native" subsystem is something different). I have also heard "C DLL" used, implying the same as your use of "flat DLL".

A dynamic link library is a generic concept - a "Windows dynamic link library" is differentiated from *nix's equivalent, and also from managed libraries.

COM is little more than an encapsulation convention in this context - Windows DLLs can contain COM servers, as can portable executable (PE) files.