Благодарю.
Он не должен вызывать функцию LoadLibrary или LoadLibraryEx (или функцию, которая вызывает эти функции), поскольку это может создать циклы зависимости в порядке загрузки DLL. Это может привести к использованию DLL до того, как система выполнит свой код инициализации.
Я пытался позвонитьLoadLibrary
от DllMain и ничего не произошло.
Единственная проблема, которую я вижу, заключается в том, что загруженная DLL будет использовать функции в моей DLL до того, как будет выполнена остальная часть моей DllMain.
Почему я не должен вызывать LoadLibrary в DllMain?
РЕДАКТИРОВАТЬ:Хорошо, я понял, что не должен вызывать LoadLibrary в DllMain только потому, что долженверить MSDN, как и другие верующие (я видел там кое-что неправильное, но я тоже должен их забыть).
И потому что что-то может случиться в более новых версиях Windows (хотя там ничего не изменилось за последние десять лет).
Но может ли кто-нибудь показать код, который будет воспроизводить что-то плохое, что происходит, когдаLoadLibrary
называется в DllMain? В любой существующей ОС Windows?
Не просто вызов одной функции инициализации синглтона внутри другой, ноLoadLibrary
в DllMain?