![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Zhenyok |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.10.2006 Репутация: нет Всего: нет |
подскажите пожалуйста в чем проблема: некорректно работаю функции записи в файл
есть указатель
где хранятся данные. Размер структуры gpsm_t_map равен 48 байт я ее пытаюсь зиписать в бинарный файл в цикле.
иногда падает функция WriteFile, (на некоторых машинах!!!), но пишет четко, размер файла нормальный. Делаю то же самое, но тока функцией fwrite(...), работает без ошибок, но размер файла не одинаковый, и данные перемешаны, то больше запишет, то меньше. Делаю методом write класса wxFFile из набора классов технологии wxWidgets, эффект тот же самый что и функцией fwrite. Подскажите, пожалуйста, что делать Возмочно некорректно работаю некоторые dll в системе? |
||||
|
|||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Описание структуры gpsm_t_map ?
структуры, куда включена gpsm_t_map ? Это сообщение отредактировал(а) threef - 22.2.2007, 12:35 |
|||
|
||||
| Zhenyok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.10.2006 Репутация: нет Всего: нет |
LPDWORD num;
|
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Ух ты!
DWORD num WriteFile(...,&num,..) Неожиданно даже. Ты для переменной не выделил места, функция записывает невесть куда. Что до fwrite, то посмотри ключи открытия файла. Там необходимо что-то типа "a+b" |
|||
|
||||
| Zhenyok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.10.2006 Репутация: нет Всего: нет |
Добавлено @ 12:50 fwrite использую с ключем "w" а насчет writefile(...), почему она работает на некоторых машинах нормально, а не некоторых напрочь отказывается?!? |
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
ключ w для текстовых файлов, запись и чтение - с учетом признака конца строки, который в структуре с двоичной информацией может встретиться где угодно( 1 байт со значением 0). Нужно "wb".
Еще раз, LPDWORD num - это указатель. Если ты его передаешь функции, то она по этому указателю записывает количество прочитанных байт. Указатель не инициализирован, значение не определено, функция записывает невесть куда. нужно или так, как я написал вверху, или
Добавлено @ 13:27 Этого достаточно, чтобы все упало... Еще проверь, совпадает ли твой length с количеством элементов в (я так понял) динамическом массиве *point_map. Если не поможет, пришли, как ты добавляешь туда элементы. |
|||
|
||||
| Zhenyok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.10.2006 Репутация: нет Всего: нет |
спасибо!!! дело было с указателем.
Тока почему он на некоторых машинах работает?!? Вот это мне интересно!!! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |