кароче я поставил в начале функции потока return 0;
Всё равно глючит,
в окне стека вот что:
$$$00001() line 79
KERNEL32! bff88ef7()
KERNEL32! bff86966()
KERNEL32! bff86863()
> кароче я поставил в начале функции потока return 0; > Всё равно глючит, > в окне стека вот что: > $$$00001() line 79 > KERNEL32! bff88ef7() > KERNEL32! bff86966() > KERNEL32! bff86863()
теперь хоть понятно, что это не зацикливание рекурсивных вызовов
1) а как у тебя threadproc объявлена ?
2) и как ты создаёшь thread ?
Вот что я делаю26.10.01 18:03 Автор: Лamo Статус: Незарегистрированный пользователь
кароче сначала я создаю поток, делаю некоторые действия,
при успешном выполнении действий, шлю мессагу - SendMessage функция которой запускает новый поток,
потоки создаю так:
HANDLE h;
DWORD dw;
if(h)
CloseHandle(h);
h = CreateThread(NULL, 0, thread, NULL, &dw);
сама функция потока:
DWORD WINAPI thread(void *Param)
{
return 0;
}
Вот что я делаю26.10.01 21:50 Автор: ggg <ggg> Статус: Elderman
В VC это вроде делается через Project Settings->Link->Output->Stack allocations
Размер по умолчанию 1 Мб, если подсказка не врет. Если при увеличении скажем до 2 Мб переполнение останется, то это скорее всего где-то бесконечная рекурсия. Если переполнение пропадет, то в программе просто избыток локальных переменных.
Наверное, потому что, у тебя там бесконечная рекурсия(функция вызывает сама себя), может не напрямую, косвенно. Обычно именно из-за этого. ты ведь на с++ пишешь?
A eche
1.mozhet byt` kogda ty vnutri funkcii ty declariruesh bolshoe kol-vo stack variables (local ili automatic)
2. C startup ne smoglo inicializirovat` stack space.
Mozhesh izmenit stack size :
1.v compilere /F
2.v linkere /STACK:
3.v .DEF file STACKSIZE
4.ispolzua util EDITBIN na gotovoom EXE
no esli ty uvelichish stack slishkom mnogo to to ne smozhet allocirovat` stack