Quote Originally Posted by AstroTux View Post
After my C++ DLL with 1 function call (CreateFile) weighed 45 kB and still required additional run-time support despite compiling it as native code, etc...

My assembler coded Service app does everything I need in 2.5 kB, and requires no additional run-time support. Quite simply, you can't beat it.
First off your assembler code is not the same what I've given you in C++ - you removed all the error checks and if's. There's a big difference in two.

Secondly, even if you save greatly on the size of your executable file, do you also get portability? Readability? Ease of debugging? Development time? I wrote once a piece of code almost entirely on Assembler. Now it's a dead code, because I cannot adjust it to a newer CPUs, plus I have a hard time reading it and analyzing it.

Thirdly, even if you save on your executable file size the rest of the Operating System and the libraries your code has to depend on (at least kernel, user, control and nt.dll) are not written like that, so your gain becomes practically canceled out.