Я работаю над приложением, которое внедряет dll при запуске процесса (Suspend -> Inject -> Resume)
Самый первый вызов в DllMain с DLL_PROCESS_ATTACH (в DLL, который я ввел) - это вызов MessageBox () (только для целей отладки).
Однако этот вызов MessageBox () иногда выдает ошибку и приводит к сбою внедренного процесса.
Ошибка выполнения!
Программа: C: \ Program Files \ Microsoft
Office \ Office14 \ OUTLOOK.EXE
R6030
- CRT не инициализирован
Это можно воспроизвести, например, в Outlook и Winword. Хотя Notepad, IE, CMD, Calc и многие другие - распечатайте окно сообщения и продолжайте в обычном режиме.
Печать окна сообщения не обязательна для меня, поэтому я просто хочу иметь возможность проверить, выполняла ли CRT инициализацию, или нет, поэтому я могу продолжать, как обычно:
case DLL_PROCESS_ATTACH:
if (IsCRTInitialized())
MessageBox(...);
Пожалуйста, дайте мне знать, если какая-то информация отсутствует.
Спасибо!