C++ DllMain()例程和MessageBox()函数

C++ DllMain()例程和MessageBox()函数,c++,C++,MessageBox在DllMain()的User32.dll中实现时,DllMain()例程显然不能被调用,这是真的吗? 若有,原因为何?你能解释一下吗 DllMain()对许多有用的东西都有一些限制 您不能调用任何可以调用FreeLibrary的loadlibrary的函数,或者可以根据创建依赖项循环。这也没什么意义。Dll main只能用于执行一些非常有限的初始化—它是库的入口点,而不是执行逻辑的地方 在初始进程启动期间或调用LoadLibrary之后 系统扫描进程的已加载DLL列表。对于

MessageBox在DllMain()的User32.dll中实现时,DllMain()例程显然不能被调用,这是真的吗? 若有,原因为何?你能解释一下吗

DllMain()对许多有用的东西都有一些限制


您不能调用任何可以调用FreeLibrary的loadlibrary的函数,或者可以根据创建依赖项循环。这也没什么意义。Dll main只能用于执行一些非常有限的初始化—它是库的入口点,而不是执行逻辑的地方

在初始进程启动期间或调用LoadLibrary之后 系统扫描进程的已加载DLL列表。对于每个DLL 尚未使用DLL\u PROCESS\u ATTACH值调用的, 系统调用DLL的入口点函数。这个电话是用电话打的 导致进程地址空间丢失的线程的上下文 更改,例如进程的主线程或 称为LoadLibrary。对入口点的访问由 在整个流程的基础上建立系统。DllMain中的螺纹固定装载机 锁定,以便无法动态加载或初始化其他DLL


好的,那么不应该在DllMain()上调用MessageBox()?你是个天才+1.谢谢:我有一个疑问:如果我每次插入MessageBox(因为它不应该)都应该工作(显示),这是真的吗?如果你正在使用api线程并且已经加载了你需要的所有内容,它可能工作。好的,谢谢。如果我不使用api线程,为什么它不能工作?