0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
|
1 | |
самопроизвольный выход программы11.03.2013, 11:15. Показов 2087. Ответов 23
Метки нет (Все метки)
Доброго времени суток. Я пишу программу консольный проект С++ в Visual студии 2010 ознакомиться можно по адресу smilejohn.ts6.ru, вот только версии которую я сейчас пишу там нет.
Программа представляет собой конструктор символьных игр. В коде ничего не выделяется динамически, никаких new и проблем с указателями нет. Работает отменно, но после определённого времени работы программа само произвольно вылетает как в случае повреждения кучи или неправильного доступа к памяти. Код написан так, чтобы все создаваемые классы (их пока всего два) уничтожались по мере возврата обратно в main, у меня работает без проблем, но скидываю тестеру, он жалуется на вылеты программы при возврате в меню из режимов содержащих классы. Создал деструкторы и прямой выход в main из "центральных" функций каждого из режимов, вроде работает, но появились проблемы при считывании карты уровня из файла. Проблема вообще не понятная, подскажите хоть в какую сторону копать
0
|
11.03.2013, 11:15 | |
Ответы с готовыми решениями:
23
Самопроизвольный выход из сна Самопроизвольный выход из сна Самопроизвольный выход из спящего режима Самопроизвольный выход из спящего режима |
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
11.03.2013, 11:25 | 3 |
Какое сообщение об ошибке? (Приведи дословно или скриншот.)
Пока информации, чтобы помочь, слишком мало. А телепаты все, как один, - к сожалению, ушли в отпуск :-)
0
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
|
11.03.2013, 11:35 [ТС] | 4 |
а куда вставлять картинки? я не нашёл кнопки
0
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
|
11.03.2013, 11:47 [ТС] | 5 |
вот скриншот))) и просто закрывается. Видимо что-то на этапе выполнения вылетает, но проверял несколько раз проблем вроде как нет. Разве что, что-то на более низком уровне не так
0
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
|||||||||||
12.03.2013, 11:49 [ТС] | 6 | ||||||||||
код "центральной функции" режима запуска игры (созданного уровня)
Добавлено через 13 минут так дело в том, что свои ошибки я нахожу дебаггером, но чаще просто выслеживаю их по коду, например исправил некорректное чтение уровня из файла, которого в принципе быть не должно было, просто не досмотрел. На работе и дома при личном тестинге ни единой ошибки не возникает, нет даже намёка на некорректный вылет. Я специально создавал аварийные ситуации, на подобии быстрых переходов из режимов в режим заставляя программу работать на износ, но увы, ничего обнаружить не удалось. Сбрасываю тестеру, при выходе в меню из режима приведённого выше у него всегда вылетает. Кроме матов ничего на ум не приходит Эм, э, я не помню запрещается ли несколько постов подряд, но на редактирование записи отводится всего 5 минут и я только, что заметил среди кнопок "предварительный просмотр сообщения", почему не видел раньше, не знаю...
0
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
||||||
12.03.2013, 18:50 [ТС] | 9 | |||||
это моя собственная функция, созданная для работы со стандартными операциями
KEY.h
Добавлено через 7 минут скорей всего, но проект показать не могу, много личных приёмов, которые я хотел бы за собой и оставить
0
|
Заблокирован
|
|
12.03.2013, 18:59 | 10 |
el Domaco, замени гетч на GetAsyncKeyState
https://www.cyberforum.ru/blogs/34326/blog263.html крайне нечитабельно условные операторы смотряться На счёт личных приёмов, не думаю что меня чем либо удивил бы. Попробуй привести проект изъяв из него твои приёмы, не могу ничего сказать не видя код. - это вообще не понятно что, у тебя перегружен оператор * для struct key а где же перегрузка?
0
|
kravam
|
||||||||||
12.03.2013, 19:10
#11
|
||||||||||
Не по теме: Весь-то и не надо, откровенно говоря на фиг кому он нужен весь-то. Надо уметь отделить тык скыть зёрна от плевел. Вот не мой РАБОЧИЙ файл, который у меня не компилился: вот я сюда его даже спрячу- настолько он велик и громоздок
И вот что от него осталось, когда я упрощал:
1
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
|
13.03.2013, 10:18 [ТС] | 13 |
-=ЮрА=- это просто указатель на описание структуры, которая никогда не создаётся в памяти, причина не в ней.
0
|
|
13.03.2013, 13:09
#14
|
Не по теме: el Domaco, да я увидел что там указатель( просто код написан в плохом стиле и с первого взгляда кажется другое), но дело не в этом, дело в том, что выражаясь простым языком хз что там у тебя в коде. Ты парсишь энер (по моему) гетчем, да будет тебе изветно что гетч функция со времён MSDOS и скажем на виста уже может непредсказуемо отрабоать - т.е ты нажмёшь кнопку, а код может и не пойти либо пойдёт код не энера а скажем ESC-ейпа(ну это так утрировано), тем более если платформа 64-ая, там вообще алес - даже корректные 32-х приложения могут не пойти а тут ты со своими тайнами. Без костяка програмы никто тебе не скажет что там у тебя не так. Возьми выкинь основные моменты да приатач наконец-то проект, который тебе поправит любой прогер юзающий отладчик
1
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
||||||
13.03.2013, 16:16 [ТС] | 15 | |||||
-=ЮрА=- и kravam большое вам спасибо, если бы не ваша просьба показать весь проект, не нашёл бы ошибку наверно уж точно от меня по плюсу а вот alsav22 я поставил бы минус
Проблема была вот в чём
проблема была в этом file_author() это процедура создания файла-шаблона, при старте программы она дважды создавала файл, но!!! если вернуться из какого-либо режима, то есть дальней функции из которой удаляются ранее созданные переменные и классы, то происходит самовылет. Я сделал глобальную булевскую переменную, чтобы файл-шаблон создавался единожды и скинул тестеру, отписался об успешном исправлении проблемы. Всем спасибо тема закрыта!
0
|
|
13.03.2013, 16:37
#16
|
Не по теме: - есть сравнение литерала x и IID_IUnknown, можно проверить эквивалентны ли CLSID-ы - бесполезный и бессмыленный вызов, что эквивалентны CLSID что нет, всё равно код поедит далее. Супер решение!:bravo: PS:строку memcmp без if можно вообще выкинуть, ничего не изменится. Видимо там стоял memcpy
0
|
alsav22
|
13.03.2013, 17:00
#17
|
Не по теме: -=ЮрА=-, ТС мне не захотел отвечать, может ты просветишь... самопроизвольный выход программы
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
13.03.2013, 17:32 | 18 |
Не по теме: Ну и чё? Так-то вообще весь код бесполезный. Мне главное было получить минимальный компилящийся код. Чтобы простыню не выкладывать. Так понятней? О, Господи... я выкладываю минимизированный код- в ответ слышу- на хрена ты минимизируешь... %-) Да ты вообще не лезь, без твоей помощи разобрался уже. Добавлено через 3 минуты
0
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 16
|
|
13.03.2013, 22:30 [ТС] | 20 |
ааай, сделал как показалось достаточным. Раз уж на то пошло, как можно перехватить код с клавиатуры так, чтобы не было зарежки? Приведу пример во флеше
движение 1 - кнопка: движение, пауза, продолжительное движение движение 2 - клип: движется продолжительно без задержки как сделать второе? Я так и не нашёл. Плюс что за функция GetAsyncKeyState? как-то не сталкивался
0
|
13.03.2013, 22:30 | |
13.03.2013, 22:30 | |
Помогаю со студенческими работами здесь
20
Самопроизвольный выход из спящего режима Самопроизвольный выход из спящего режима в три часа ночи Выход из программы Выход из программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |