Re: проблемы с UpdateData()
От: Daniel  
Дата: 13.08.02 15:16
Оценка: 8 (1)
Здравствуйте Corvin, Вы писали:

C>Вызываю в нити pWhatever->UpdateData(false), — выбрасывает с ошибкой доступа к памяти...

C>pWhatever — указатель на мой диалог, в котором была создана нить. Кто сталкивался, — допоможите, плз...

посмотри что делает UpdateData() в файле wincore.cpp:
/////////////////////////////////////////////////////////////////////////////
// 'dialog data' support

BOOL CWnd::UpdateData(BOOL bSaveAndValidate)
{
    ASSERT(::IsWindow(m_hWnd)); // calling UpdateData before DoModal?

    CDataExchange dx(this, bSaveAndValidate);

    // prevent control notifications from being dispatched during UpdateData
    _AFX_THREAD_STATE* pThreadState = AfxGetThreadState();
    HWND hWndOldLockout = pThreadState->m_hLockoutNotifyWindow;
    ASSERT(hWndOldLockout != m_hWnd);   // must not recurse
    pThreadState->m_hLockoutNotifyWindow = m_hWnd;


этот код предполагает что текущий thread это тот, в котором был создан диалог.
может быть Вашу проблему решит AFX_MANAGE_STATE( ::AfxGetStaticModuleState() );

но правильней будет послать user defined сообщение этому диалогу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.