The include files contains declarations of structures, constants and function prototypes. And the libraries tell the linker which import libraries the program needs to link with. When you specify the import libraries to the linker, an import table is added to your program. So the question to be asked is; do you really require an import table for a program to run correctly? Technically the answer is NO. You can entirely do away with the concept of import tables. A program that doesn’t have import table doesn’t necessarily mean that the program will not use APIs. On the contrary the program will use APIs like any other 32-bit program with imports.