![]() |
|
|
![]()
|
|
| Ober |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Доброго времени суток, укажите пожалуйста на ошибку в коде. Проблема состоит в том, что программа аварийно завершается при вызове функции чтения из файла. Вот собственно функции.
И есть ли в qt функция типа seekg(), для установки указателя в файле ? Функция записи в файл.
Функция чтения
currentPtr и tempPtr это указатели на объект класса MGroups Это сообщение отредактировал(а) Ober - 28.2.2012, 23:39 |
||||
|
|||||
| Sahab |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.9.2009 Репутация: 2 Всего: 3 |
для tempPtr память выделена?
нужно проверять открылся ли файл:
bool QIODevice::seek ( qint64 pos ) [virtual] Это сообщение отредактировал(а) Sahab - 29.2.2012, 02:16 |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Структура, на которую указывает currentPtr, не показана, но у неё есть поле nextPtr, указывющее на следующую структуру.
Смысла писать указатели в файл - никакого, при загрузке адреса поменяются. Если это класс, в нём есть ещё указатель на таблицу виртуальных методов - сохранять его так ещё более бессмысленно. |
|||
|
||||
| Sahab |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.9.2009 Репутация: 2 Всего: 3 |
это к чему? Добавлено через 47 секунд
это и так ясно из кода. |
||||
|
|||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
||||
|
||||
| Ober |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Теперь ясно, что в файл записываются адреса на которые указывают указатели, а как записать в файл данные которые находятся по этим адресам?
Это сообщение отредактировал(а) Ober - 29.2.2012, 16:43 |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
math64, ИМХО 26-ю и 27- строчку нужно местами поменять
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
||||
|
||||
| Ober |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Спасибо Math, все получилось. Все эти указатели ( currentPtr, nextPtr, temPtr ) сделаны потому-что по условию задания нужно было реализовать динамическую структуру. Появилась проблема с утечкой памяти, у меня в функции вывода данных на экран создается таблица в которую записываются актуальные данные .
как сделать, чтобы при закрытии этого окна каждый раз освобождалась выделенная под него память Заранее спасибо. |
||||||
|
|||||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
При создании виджетов указывай у них parent. При удалении родителя автоматически удаляются все дочерние виджеты.
В особых случаях чтобы отследить удаление нужно вешать слот на удаление виджета. Вместо QTableWidget можно использовать QTableView + свою модель, при этом проблем с выделенем будет памяти меньше. при использовании QList<MGroups> это сделать достаточно просто, см. пример создания модели из документации по Qt, при самодельном списке firstPtr - nextPtr это сложнее. |
|||
|
||||
| Ober |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Подскажите что делать, не могу запустить через .exe файл ни одну программу, закинул в папку все библиотеки которые требовалось и в конце оно выбивает ошибку
Точка входа в процедуру _Z17qt_message_output9QtMsgTypePKc не найдена в библиотеке DLL QtCore4.dll И после того как закидываю в папку нужные библиотеки программа перестает запускаться в режиме релиза Это сообщение отредактировал(а) Ober - 1.3.2012, 22:29 |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Вероятно, в системе есть приложение, использующее Qt другой версии. Вместо твоей DLL загружается его. Попробуй загрузить через bat файл
В QtCore4.dll прописаны пути к плагинам по умолчанию, поэтому если испоьзуются плагины, нужно вызывать addLibraryPath() |
|||
|
||||
| Ober |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Сделал bat файл, правда не знаю на сколько правильно так как до этого никогда не делал. Но теперь при ошибке пишет, что не может найти точку входа в процедуру в QtGui4.dll, указываю путь на нее но ничего не меняется. Вот содержимое bat файла PATH D:\Study\Polyteh\1course\2semester\1.Programming_bases\OP_2obr_2sem\Kurs1\KURS1-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK_______\release\QtGui4.dll KURS1.exe создавал bat файл в папке с библиотеками и exe файлом так PATH QtGui4.dll KURS1.exe Путь оно находит но все равно не запускается Это сообщение отредактировал(а) Ober - 2.3.2012, 22:27 |
||||
|
|||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
В Path указываются каталоги, а файлы.
если все dll в текущем каталоге - path . (хотя текущий каталог можно не указывать, но path без агрументов выдает текущие пути поиска на экран) Добавлено через 2 минуты и 16 секунд хотя проблема может быть в другом. Не ползуешься чужими dll ? Всё должно быть откомпилировано в одной и той же версии SDK и компилятора. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |