Why in a project should I include some *.lib, .h or some other files? And what are these things used for?
.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.