![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Надо завершить дополнительный поток...
Вот так я делаю :
Программа компилиться, но при тестировании выпадает некоректное юзание памятью Что скажете ? Я использую этот способ(экстр. завершение), потому что данный код исполняется в главном потоке, а не в дополнительном... Это сообщение отредактировал(а) chipset - 5.1.2005, 15:03 |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
А проверять не забываем память? Он у тебя не static обьект случаем? --------------------
|
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
chipset
Да... после создания потока, я установил m_bAutoDelete = FALSE, так что в памяти действительно будет висеть Main_pot(вернее его остатки Проблема имхо тут : "GetExitCodeThread(Main_pot->m_hThread, lp_my_ret); while(*lp_my_ret == STILL_ACTIVE)" Добавлено @ 15:18 CWinThread *Main_pot; Это сообщение отредактировал(а) En_t_end - 5.1.2005, 15:20 |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Пройдись дебаггером и посмотри где происходит выброс памяти.
Желательно ещё использовать клавишу F11 (в VC7.1). Это сообщение отредактировал(а) chipset - 5.1.2005, 15:19 --------------------
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 1 Всего: 99 |
En_t_end, тут я раз уже своими мыслями делился
http://forum.vingrad.ru/index.php?showtopi...ndpost&p=276689 -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Прошёлся по-этапно дебаггером, ошибка здесь :
*lp_my_ret == STILL_ACTIVE Почему сравнение не правильно ? Добавлено @ 15:29 cardinal А где именно ты говорил про аннологичную ситуацию ? Тут проблемма имхо в другом... |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Память не выделил для lp_my_ret --------------------
|
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
LPDWORD lp_my_ret;
TerminateThread(Main_pot->m_hThread, 0); GetExitCodeThread(Main_pot->m_hThread, lp_my_ret); while(*lp_my_ret == STILL_ACTIVE) { Sleep(10); GetExitCodeThread(Main_pot->m_hThread, lp_my_ret); } GlobalFree(Main_pot); //Забыл то самое главное Цикл вообще не правильно организовал Сейчас ещё раз дебагером пройдусь... |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
En_t_end, лишний раз щелкай кнопкой "Код", так гораздо удобнее читать ;)
--------------------
|
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Ага теперь материться на GetExitCodeThread(Main_pot->m_hThread, lp_my_ret), видно не правильно я в lp_my_ret статус ложу
Добавлено @ 15:36 "лишний раз щелкай кнопкой "Код", так гораздо удобнее читать ;)" Не могу |
|||
|
||||
| chipset |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Память выделяй для lp_my_ret Примерно так: lp_my_ret = new DWORD; Добавлено @ 15:43
Какой браузер? --------------------
|
||||||
|
|||||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Какой браузер?
Micr. Enternet Expl. Это имхо в поддержке java проблемма... так как любой жабовский скрипт, на моем компе запускаться не хочет, просто ничего не делает Всё заработало Chipset Спасибо... Действительно память не выделил "+" репутация... |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Надо бы это в фак занести, я на этой фигне дни тратил... --------------------
|
||||
|
|||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Модератор: перенесено из Visual C++/MFC/WTL в Системное программирование
--------------------
|
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
ОФФТОП почему из Visual C++/MFC/WTL в Системное программирование ???
Тут теперь ещё странность одна... Если допустим поток завершился во время спячки(Sleep(-n-)), то, если я захочу создать ещё раз этот поток, то в локальных переменных этого потока оказывается такая чушь !!! Интересно из-за чего это ? |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |