DllMain()例程和MessageBox()函数

时间:2015-10-30 13:06:35

标签: c++

MessageBox 是否属实,因为它在DllMain()中的 User32.dll 中实现,DllMain()例程显然可能未被调用? 如果是,为什么?你能解释一下吗?

  

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

1 个答案:

答案 0 :(得分:0)

您无法调用任何可以调用freelibray的loadlibrary的函数,或者您可以根据documentation创建依赖循环。它也没有意义。 Dll main应该只用于做一些非常有限的初始化,它是你的库的入口点而不是逻辑应该被执行的地方

  

在初始进程启动期间或调用LoadLibrary之后,   系统扫描进程的加载DLL列表。对于每个DLL   尚未使用DLL_PROCESS_ATTACH值调用,   系统调用DLL的入口点函数。这个电话是在   导致进程地址空间的线程的上下文   更改,例如进程的主线程或线程   叫LoadLibrary。对入口点的访问由序列化   系统在整个过程中。 DllMain中的线程持有加载器   锁定所以不能动态加载或初始化其他DLL。