Мы используем зарегистрированные сообщения Windows для связи между экземплярами нашего приложения.Мы отправляем сообщение с помощью следующего вызова:
DWORD dwResult;
::SendMessageTimeout(HWND_BROADCAST, wmRegisteredMessage, 0, 0,
SMTO_ABORTIFHUNG | SMTO_NORMAL,
200,
&dwResult);
Этот механизм работает нормально, если приложение не работает под отладчиком Visual Studio 2010.Если это так, обработчик сообщений не вызывается.Кроме того, Spy ++ показывает, что приложение не отправляет сообщение.
Если приложение работает, а затем отладчик подключен к процессу, сообщение принимается, как и ожидалось.
Есликод изменен на:
SendMessage(HWND_BROADCAST, wmRegisteredMessage, 0, 0);
Все работает как положено.
Я пробовал разные параметры для SendMessageTimeout (), но я все еще вижу то же поведениеЯ добавил код для проверки кода возврата из SendMessageTimeout (), и он не возвращает ошибку.
Есть идеи?