Компилятор: Visual Studio C++ Express Edition 2008
В чем проблема: программа начинает выполняться и вылетает Access Violation.
Исходный код (на том месте, где вылетает программа):
Код | BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { // ----------------------------------------------------------------------------------------- // ШАГ 1:
HWND hWnd; hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной // ----------------------------------------------------------------------------------------- // ШАГ 2: Создаем окно
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
// ----------------------------------------------------------------------------------------- // ШАГ 4: Устанавливаем соединение с базой данных
//db.connect(); // ----------------------------------------------------------------------------------------- // ШАГ 5: Запускаем поток сбора новостных сообщений
HANDLE hThread; DWORD dwThreadID;
// !!! ВОТ ТУТ ВЫЛЕТАЕТ !!! hThread = CreateThread(NULL,0,ClearThread,0,0,&dwThreadID); // ----------------------------------------------------------------------------------------- return TRUE; }
|
Вылетает в 35 строке!
Что пишет отладчик:
Код | "smip.clear.exe": Загружено: "E:\smip\smip.clear\Debug\smip.clear.exe", Символы загружены. "smip.clear.exe": Загружено "C:\WINDOWS\system32\ntdll.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\kernel32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\user32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\gdi32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\advapi32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\rpcrt4.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\secur32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\libmySQL.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\wsock32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\ws2_32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\msvcrt.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\ws2help.dll" "smip.clear.exe": Загружено: "C:\WINDOWS\system32\libxml2.dll", Двоичный код не был построен с отладочной информацией. "smip.clear.exe": Загружено: "C:\WINDOWS\system32\iconv.dll", Двоичный код не был построен с отладочной информацией. "smip.clear.exe": Загружено: "C:\WINDOWS\system32\zlib1.dll", Двоичный код не был построен с отладочной информацией. "smip.clear.exe": Загружено: "C:\WINDOWS\system32\curllib.dll", Двоичный код не был построен с отладочной информацией. "smip.clear.exe": Загружено: "C:\WINDOWS\system32\ssleay32.dll", Двоичный код не был построен с отладочной информацией. "smip.clear.exe": Загружено: "C:\WINDOWS\system32\libeay32.dll", Двоичный код не был построен с отладочной информацией. "smip.clear.exe": Загружено "C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e\msvcr90.dll" "smip.clear.exe": Загружено: "C:\WINDOWS\system32\openldap.dll", Двоичный код не был построен с отладочной информацией. "smip.clear.exe": Загружено "C:\WINDOWS\system32\libsasl.dll" "smip.clear.exe": Загружено "C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcr90d.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\imm32.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\msctf.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\version.dll" "smip.clear.exe": Выгружено: "C:\WINDOWS\system32\version.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\apphelp.dll" "smip.clear.exe": Загружено "C:\WINDOWS\system32\msctfime.ime" "smip.clear.exe": Загружено "C:\WINDOWS\system32\ole32.dll" Первый этап обработки исключения в "0x00412ca7" в "smip.clear.exe": 0xC00000FD: Stack overflow. Необработанное исключение в "0x00412ca7" в "smip.clear.exe": 0xC00000FD: Stack overflow.
|
Что в дизасемблере:
Код | 00412C9A pop ecx 00412C9B xchg eax,esp 00412C9C mov eax,dword ptr [eax] 00412C9E mov dword ptr [esp],eax 00412CA1 ret 00412CA2 sub eax,1000h // !!! Вот тут косяк !!! 00412CA7 test dword ptr [eax],eax 00412CA9 jmp cs10 (412C94h) --- Нет исходного файла -------------------------------------------------------- 00412CAB int 3 00412CAC int 3 00412CAD int 3 00412CAE int 3 00412CAF int 3 00412CB0 int 3 00412CB1 int 3 00412CB2 int 3 00412CB3 int 3 00412CB4 int 3 00412CB5 int 3 strcat_s: 00412CB6 jmp dword ptr [__imp__strcat_s (672470h)]
|
Стек вызова:
Код | > smip.clear.exe!_chkstk() Строка 99 Asm
|
В чем тут может быть проблема??? |