What's the differences between .dll , .lib, .h files?

C++WindowsDllHeader Files

C++ Problem Overview

Why in a project should I include some *.lib, .h or some other files? And what are these things used for?

C++ Solutions

Solution 1 - C++

  • .h: header file, its a source file containing declarations (as opposed to .cpp, .cxx, etc. containing implementations),

  • .lib: static library may contain code or just links to a dynamic library. Either way it's compiled code that you link with your program. The static library is included in your .exe at link time.

  • .dll: dynamic library. Just like a static one but you need to deploy it with your .exe file because it's loaded at run time.

Solution 2 - C++

  • H Declares the interface to a library - including functions, structures, and constants. Written in the C language.
  • LIB Either declares the binary interface to a dynamic library (DLL) or contains the binary code of a library.
  • DLL A dynamic library - your application shares these with the system or you use them to keep your code base organized.
  • DEF A textual description of functions exported by a DLL.

Solution 3 - C++

*.dlb is similar to static library.


All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMemoryLeakView Question on Stackoverflow
Solution 1 - C++siukurninView Answer on Stackoverflow
Solution 2 - C++Frank KruegerView Answer on Stackoverflow
Solution 3 - C++john davidView Answer on Stackoverflow