in reply to Newbie programming questions

These are questions about the process of programming, more than Perl-related, but I'll take a stab at them as I'm in wait-4-interrupt mode.

An API is the conceptual interface between parts of a computing system. It is the definition of how information is passed from one subsystem, module, or program to another.

'Building' is an inexact term often used for the process of compilation and linking, yes.

Programs can be separately compiled, either as standalone binaries or as libraries which are meant to be shared. In the Windows world, shared libraries, i.e., common libraries meant to be used by multiple programs, are called DLLs. People use shared libraries so as not to waste memory. For example, if you have two programs running that need to parse Unicode characters, would you want to include the same code in both programs, or would you want to just access one copy of the same code with both programs, as needed?

Header files are source files which generally are used to define data structures or include definitions of such, as opposed to code files, which define the algorithms. That distinction is blurring these days, however.

The distinction between functions and subroutines is less important and less-often preserved these days. Originally, functions were subroutines that returned values and subroutines were just packaged actions. Either can have side effects, such as I/O or changes in global variables. 'Method' is the new name which is used in describing object-oriented actions. The object paradigm generally includes a requirement that object methods not have side effects, but, especially in C++, this can be broken.

You have asked this in a Perl forum, and none of this except API has anything to do with Perl. Perl is an interpreter, as opposed to a compiler. In Perl, the perl interpreter is the binary, and you feed it your source program. The Perl language is the conceptual API, and your program while being interpreted (also "run") by perl may have its own API as an interface between you and it, or it and other programs and resident services on your computer.

These topics are included in any computer science 101 course, although you are asking them in a Windows context. Any beginning CS textbook will give you this and more. The suggestion has already been made that you look for basic C books, and that's a good one. There are numerous books which cover C in a VS/Windows context.