【发布时间】:2011-04-06 07:20:59
【问题描述】:
我正在为某些系统编写插件,但是有一些行为不端的应用程序在 dll 初始化期间调用我的插件(来自 DllMain 或 InitInstance,它是 DllMain 的包装器)。
我想知道是否有办法找出代码是否在 DllMain 中执行。我不想在不导致死锁的情况下优雅地失败(我的插件正在执行的代码涉及 dll 加载、线程创建和等待事件,如果在 DllMain 中执行会导致死锁)。
我知道 CreateThread 在 DllMain 退出之前不会执行,但是我不能从另一个线程进行初始化,因为它涉及 COM。
【问题讨论】: