They're provided by the API DLLs, like kernel32.dll rather than the runtime DLL (msvcrt.dll).

Just replacing those two won't negate the need for msvcrt, you'd have to replace EVERYTHING in it - although some things in the library aren't directly supported by the API. For example, to remove all the dependencies you wouldn't be able to use much of the STL without defining your own allocator template (fun ).