Original Post
Programming seems to be a *big picture* field of study. It's not so difficult to memorize the C++ language for instance, but to really understand how the source code works all the way down the line to low-level interactions with the OS and device BIOS, I'm starting to think that I need a more comprehensive knowledge base. I'm trying to understand a very simple concept about programming and applications but it's going to take me some time to try and explain it. (Sorry) Please understand that you all could not possibly be thorough enough in any responses as short, vague answers will only probably confuse me more! Thanks guys As I believe I've gathered (but don't quite understand), any application needs a way to interface with the OS. In the old days of programming, programmers probably had to do this the hard way, by writing in low-level languages. This became too tedious, so API's were written to help make programming quicker and easier. Programmers now only have to worry about conforming to the API's standards; their programs invoke API calls which then do all the low-level communications.... (1) Am I right? Way off? If I am right, then: (2) If the OS is always running, and a program written in high-level source code gets compiled into bytecode, then where does the need for an API even come in? Wouldn't the OS just load the file and feed it (somehow) into the CPU? (3) How exactly does an API work? Is it platform-dependent? What level of skill would one need to write his own API? (4) Where do APIs and GUIs intersect? I don't think it's possible to write a windows program (using Windows API) that has my own custom-made GUI...I guess what I'm asking is: can a program's API and its GUI be independent of one another? (5) Can anyone explain to me exactly what the Windows API is (is it the WinMain() function, the message pump, what....)? The console API? I know its a lot of questions, but I just feel completely lost. :-/