Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CDialog::PumpMessage виснет (бесконечный WM_PAINT?


Автор: Glen 11.5.2010, 16:55
У меня есть следующая странная проблема на компьютере заказчика (куда я не имею доступа):
OS: WinXP
Приложение: MFC приложение Visual C++ 6
Там есть простой CDialog-диалог что всегда работал без проблем. Но на одном компе этот диалог зависает как только он вызван. Дамп показывает вот какой Call Stack:

    ntdll.dll!_KiFastSystemCallRet@0()    
    user32.dll!_NtUserDispatchMessage@4()  + 0xc bytes    
    user32.dll!_DispatchMessageW@4()  + 0xf bytes    
    mfc42u.dll!CWinThread::PumpMessage()  + 0x3a bytes    
    mfc42u.dll!CWnd::RunModalLoop()  + 0xc6 bytes    
    mfc42u.dll!CDialog::DoModal()  + 0xc7 bytes    

Если я правильно понял memory dump, DispatchMessage обрабатывает WM_PAINT. Возможно, диалог постоянно занят тем что перерисовывает себя по WM_PAINT. Но почему?


Автор: 586 12.5.2010, 01:41
mfc42u.dll не пробовал класть вместе с exe? или статически линковать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)