Here's a quick rundown of what thes libs are for:
- kernel32 : Process and thread management, file and device I/O, memory
allocation (keep this, the C and C++ runtime libraries and
compiler-generated code uses it)
- user32 : Window and menu management (keep this if using GUI, can
remove for console apps) The base set of widgets (= predefined window
classes, like buttons and checkboxes and scrollbars) are here.
- gdi32 : Drawing (keep this if using custom rendered graphics, can
remove if just using widgets)
- comctl32 : Fancy new widgets, like trees, listviews, and progress
bars
- winspool : Advanced usage of printing beyond what GDI covers.
- comdlg32 : Common dialogs, like Open and Save File Dialogs
- advapi32 : Registry support, user account and access control,
cryptography. I usually end up needing this one, your needs may
differ.
- shell32, shlwapi : Taskbar and notification tray UI and more helper
functions, like predefined folders and path manipulation functions.
Often useful, but many applications won't need it.
- ole32, oleaut32 : OLE is the basis for ActiveX, DCOM, etc. Many of
the newer OS APIs are COM objects, so you probably need to keep this.
- uuid : Advanced OLE usage, probably not needed.
- odbc32, odbccp32 : Database access using a very old and unfriendly
API. I always remove these.
These are the libraries that interface with Windows. Of course, if you do not use the operating system function directly, you can remove them. However, It is not recommended to remove them. If you want to prohibit their use, you could add the lib in Prperties->Linker->Input->Ignore Specific Default Libraries
.
You do not need to worry about it. The .libs are really small, and the .dlls they refer to are already present as part of your Windows installation.