5 ms·
Creator's Update broke DLL loading and it won't be fixed until Fall
- vintagedave 9y agoTLDR from the blog post and its links: * Creator's Update changes handling the import address table (this is the bit that specifies dependencies, such as "I need Bar() from foo.dll") by parallelizing loading it * It doesn't handle a class of import table behaviour where there are multiple tables per DLL. This is not strictly in the PE format spec, but has been done for twenty years by Delphi and C++Builder - ironically as a performance optimisation - and there are many thousands of apps with this table format. Usually Microsoft keeps compatibility, especially when there are thousands of apps and developers affected by a change. * Running an app will make its startup slower, as it can load and unload the DLLs it uses many times - sixty or a hundred times * Debugging an app built with these settings is unusably slow, because the attached debugger will load and unload debug info each time the DLL is loaded and unloaded. This even happens in Visual Studio * It affects many thousands of developers, and uncountable number of apps - note for apps, the slowdown is less visible than for developers, a user might not notice. Developers definitely do. * Despite being aware, it's not yet fixed, many months after Creator's was released. It may be in the Fall update. Many developers have had immense troubles for months.