![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Leopard25 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 17.4.2004 Репутация: нет Всего: нет |
Программа работает нормально.
При выходе из программы в компиляторе появляется сообщение. First-chance exception at 0x77d4c2fc in Alisa2.exe: 0xC0000005: Access violation reading location 0x25b70f8c. В чем может быть причина этого и как это исправить ? Это исключение возникает только если загружена демоверсия переводчика: "Сократ Персональный 4.1" Исключение возникает в "wincore.cpp" : // The WndProc for all CWnd's and derived classes LRESULT CALLBACK AfxWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) { // special message which identifies the window as using AfxWndProc if (nMsg == WM_QUERYAFXWNDPROC) return 1; // all other messages route through message map CWnd* pWnd = CWnd::FromHandlePermanent(hWnd); ASSERT(pWnd != NULL); ASSERT(pWnd->m_hWnd == hWnd); // В ЭТОЙ СТРОКЕ return AfxCallWndProc(pWnd, hWnd, nMsg, wParam, lParam); } --------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций ) |
|||
|
||||
| AndyY |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
проблема скорее всего в кривых хуках от сократа.
но решать такие проблемы все равно тебе при обработке какого сообщения все валится? есть ли в стеке при GPF сократские dll? может на конкретный случай можно придумать workaround и еще - поставь везде, где можно _heapchk() - она проверяет целостность памяти. Например, во все окна на WindowProc (перед и после вызова) если станет валится на _heapchk - значит портится память, где-то запись по неинициализированному указателю или выход за границы массива. |
|||
|
||||
| Leopard25 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 17.4.2004 Репутация: нет Всего: нет |
Я несовсем понял что делать.
Всё валится : после OnCloseDocument() уходит в "wincore.cpp" (см.выше) как посмотреть: есть ли в стеке при GPF сократские dll --------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций ) |
|||
|
||||
| AndyY |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
стек вызова можно посмотреть в отладчике (в студии 6 это:
View/Debug Windows/Call Stack) там будут адреса функций и названия модулей для тех модулей, для которых нет символьной информации, и названия функций для тех у которых нет. например при старте программы стек выглядит так: WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f09, int 1) line 640 WinMainCRTStartup() line 198 + 54 bytes KERNEL32! 77e7eb69() нужно посмотреть стек во время падения (когда студия указывает ошибку в AfxCallWndProc). В OnCloseDocument - однозначно проверку _heapchk(); А на какое окно указывает pWnd при вызове? может наведет на мысли какие-нибудь. |
|||
|
||||
| Leopard25 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 17.4.2004 Репутация: нет Всего: нет |
Я пишу в VC++7 и как добраться до стека я ненашел.
При появлении ошибки выводятся загруженные библиотеки и одна из строк: "'Alisa2.exe': Loaded 'C:\Program Files\Arsenal Company\Сократ Персональный 4.1\SpvHook.dll', No symbols loaded." При ошибке pWnd указывает на СMainFrame. В OnCloseDocument делал так: void CAlisa2Doc::OnCloseDocument() { _heapchk(); CDocument::OnCloseDocument(); _heapchk(); } Это правильно? (ошибок здесь небыло) --------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций ) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |