From June to now, most of my time on this project was spent writing "The Rise of Microsoft". Researching and writing that thing took an inordinate amount of time. Also, I took a break to work primarily on another unreleased project I have before switching back to this one. I am proud of what I got here though and I feel like it is all coming together. My plans for the whitepapers are already well drafted and I know they will make an impact. I have learned a ton from working on this project and it has definitely given me something to idly think about and work on in my spare time. Finishing "The Problem with How Windows Uses Threads" was something I thought I wanted done before this release, but oh well. The main README is at about 50K words now, plus all the other smaller documents and you are looking at about a small novel's worth of technical writing. And technical writing takes multiple times longer than typical story writing. Anyway, this project is exciting for me - people who I show it to also really like it - and I am even more excited about what is to come!
Library Initialization Fails Due to an Exception
We evaulate what happens when an exception is thrown from a constructor in the module scope at process startup.
Result
DllMain: DLL_PROCESS_ATTACH
After our code prints this message is when we raises an exception in the module constructor. The loader catches the thrown exception and records it as the DLL failing module initializization. Since the module failing its initialization is required for process startup in this case, the loader proceeds to exit the process early. If this module was loaded outside of the application's dependency graph due to a LoadLibrary operation then only loading that library would fail and the application would not exit.
For the error message, a GUI dialog is presented that states:
The application was unable to start correctly. (0xc0000142) Click OK to close the application.