![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
пишу собсвенный хидер содержащий класс вида:
потом подключив этот хидер пытаюсь произвожу следующие действия:
Проект компилируется/линкуется без проблем, но при запуске, примерно в 50% случаев выдает ошибку: Unhandled exception at 0x004da816 appl.exe: 0xC0000005: Access violation reading location 0xcdcdcdd3. в тексте программы место помечено комментарием. Если запускать ехе-шник, то прога падает тоже в 50% случаев (притом мне кажется что вообще стабильно через раз). Если прогонять через "опасные" места прогу по шагам, то работает всегда правильно. Приложение MFC-based, среда Visual C++ 7.1. И главное, проект уже большой очень, и если попробовать сгенерировать ошибку в другом (маленьком) проекте, то она не возникает. Делаю вывод, что у меня в проекте что-то не так ![]() Внимание вопрос ![]() PS простите если не в тот форум вопрос, просто не знаю, дело в MFC или нет. |
||||
|
|||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Поставь отладочную печать (TRACE) внутри GetLen: адрес this и значение m_len.
Такое впечатление, что this левый получается. Между созданием объекта и вызовом GetLen есть какой-то код? Сам по себе код выглядит невинно, скорее всего дело в другом коде. Можно попробовать поставить точку прерывания на запись по адресу &pMyClass. Я уже не помню, как, но точно можно. В смысле, искать, кто портит переменную. Но начни с полного ребилда проекта. Вспомни, не переносил ли ты заголовочные файлы из одной папки в другую. Если да, то вычисти все старые хвосты. -------------------- ... |
|||
|
||||
ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 5 Всего: 29 |
zkv, точно такой код, как ты показал просто не скомпилируется. Покажи точный код, в котором такие глюки происходят.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
верно -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
zkv |
|
||||||||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
ManiaK, точно, забыл про public-и.
совсем точный код не получится, но выше я его хм, несколько упростил, на самом деле система такая (не думал, что это принципиально): класс в котором проблемы:
класс в котором член - указатель на предыдущий ![]()
в классе моего диалога:
Earnest спасибо, и все-таки, может ли играть роль то, что приложение MFC? Просто вспоминаю, писал проект (MFC), добавил два файла, такие: MyClass.h
MyClass.cpp
потом подключил хидер MyClass.h к какому то файлу проекта, вдруг вспомнил про какой то недоделанный косяк, бросился доделывать, ну думаю, кому он хидер этот помешает, пустой. Через несколько запусков линкер стал выдавать что про операторы delete и delete [] что типа они уже олреди определены, так как у меня эти самые операторы в проекте использовались довольно широко я естественно подумал, что у меня что то не так... Довольно долго я копался в проекте в МСДНе и яндексе, пока не попробывал отключить этот самый пустой хидер - все заработало, решил посмотреть, получится ли еще раз такую ошибку повторить, получилось, стабильно после добавления файлов такого вида в проект, линкер через 3-5 запусков начинал точно так же материться, причем номер проходил только с MFC приложениями. Так вот если бы сейчас кто нить спросил, "А что это у меня линкер вот так (см. выше) гонит?", то я бы естественно человеку помог бы. Вот я и задаю вопрос в надежде, что это глюк как то связанный со средой, MFC, или еще с чем нибудь, а не с моей головой ![]() |
||||||||||
|
|||||||||||
ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 5 Всего: 29 |
zkv, внешне так ошибок нет вроде. Попробуй пересобери проект.
MFC язык Си++ не изменяет, потому вроде как ничего не должно быть тут. Можешь ещё попробовать из деструктора CCam убрать delete pZoom. VS очень любит мудрить с операторами delete... |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
вообщем, дело во внешней девайсине и/или в библиотеке к ней, не знаю пока точно, что происходит, но это вопрос времени. Спасибо за участие. Вопрос закрыт.
ps извините что отвлек не по существу... Это сообщение отредактировал(а) zkv - 23.8.2006, 14:04 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |