x86 MASM32 Calling C Functions
In this example I'll be using C functions, mixed with Windows API functions to write a small
assembly game of number guessing. This means the .model language type can stay
as stdcall for the Windows functions, however the main procedure denotes a "C" next to it to specify
the C calling convention. It's also worth mentioning that there were many
Visual C++ 2015 Conformance Changes that will require you to include additional libraries that are NOT
included by default by the linker for VS 2017. For clarity, I declared includelib statements in my file for the following:
- libcmt.lib
- libvcruntime.lib
- libucrt.lib
- legacy_stdio_definitions.lib

Above shows a series of extern definitions and then calling them like you normally would. As I mentioned
above, specify the C calling convention next to your PROC; however on your "END main" leave off the "main" as such:
Michael Petch: "Use 'end' on a line by itself.
We don't want to use 'end main' as that would make this function our program entry point, effectively skipping
by the C runtime initialization".