我正在开发一个在进程启动时注入 dll 的应用程序(暂停 --> 注入 --> 恢复)在 DllMain 中使用 DLL_PROCESS_ATTACH 的第一个调用(在我注入的 dll 中)是对 MessageBox() 的调用(只是用于调试目的)。但是,对 MessageBox() 的调用有时会弹出错误并使注入的进程崩溃。
运行时错误!
程序:C:\Program Files\Microsoft Office\Office14\OUTLOOK.EXE
R6030
- CRT 未初始化
例如,这可以通过 Outlook 和 Winword 重现。尽管记事本、IE、CMD、Calc 和许多其他工具 - 打印消息框并正常继续。
打印消息框对我来说不是必须的,所以我只想能够检查CRT是否进行了初始化,所以我可以像这样正常继续:
case DLL_PROCESS_ATTACH:
if (IsCRTInitialized())
MessageBox(...);
如果缺少某些信息,请告诉我。谢谢!