6 ms·
I think the grander point is that there is no real 'system CRT' on Windows; as I mentioned, there are multiple entry points each at an appropriate level of abst
by delta_p_delta_x 28d ago
I think the grander point is that there is no real 'system CRT' on Windows; as I mentioned, there are multiple entry points each at an appropriate level of abstraction available to both platform and application developers (not that there is a real difference between the two, since platform developers may also write applications like Office). Many Windows platform libraries (WIL, for instance) themselves use UCRT instead of MSVCRT now. The latter exists, but it is by no means and has not ever been by any means the single entry point to the Windows platform, unlike glibc on most desktop Linux distributions.
- okanat 28d agoYou can completely skip all CRTs on Windows and still have a program that can call dynamic loader and other Win32 APIs. Here is a tutorial: https://nullprogram.com/blog/2023/02/15/ https://nullprogram.com/blog/2023/02/15/ When you link with UCRT your specific program just gets a "view" of standard C functions. You can load DLLs that were linked with MSVCRT from a UCRT program. It just works
- dwattttt 28d agoThat's a pretty great article. Re. the stack probes, it's not hard to supply your own; Raymond Chen recently did a blog series on stack probes, the entries for amd64 and arm64 are here: amd64: https://devblogs.microsoft.com/oldnewthing/20260319-00/?p=112152/ https://devblogs.microsoft.com/oldnewthing/20260319-00/?p=11... arm64: https://devblogs.microsoft.com/oldnewthing/20260320-00/?p=112154/ https://devblogs.microsoft.com/oldnewthing/20260320-00/?p=11...