Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CStdioFile,WriteString, NTDLL.DLL, AccessViolation 
V
    Опции темы
lv151
Дата 24.7.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Пишу в файл с помощью CStdioFile+WriteString.
В дэбаг версии всё ок.

В релизе при попытке WriteString вылазит: 

Unhandled exception in .... (NTDLL.DLL):0000..5: Access Violation.

VC6.


Это сообщение отредактировал(а) lv151 - 24.7.2009, 14:50
PM MAIL   Вверх
azesmcar
Дата 24.7.2009, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



lv151

Это микрософт так задумал. Не любят они программистов, вот и ставят палки в колеса. Надо выбирать другую профессию.
 smile 
Ну ты хотя бы код покажи. Как ты вообще видишь ответ на свой вопрос без кода? Ну вылетает он..и что? мало ли программ вылетает с access violation?
PM   Вверх
lv151
Дата 24.7.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Код один и тот же. Разница только в дэбаг и релиз.
Код


CStdioFile file;
file.Open("d:\\1.txt", CFile::modeCreate | CFile::modeReadWrite | CFile::typeBinary);
file.WriteString("str");

PM MAIL   Вверх
Andrey44
Дата 24.7.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Код

CStdioFile file;
    if(file.Open("d:\\1.txt", CFile::modeCreate | CFile::modeReadWrite | CFile::typeText))//typeText вместо typeBinary
        file.WriteString("str");




--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
lv151
Дата 24.7.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Мне нужно typeBinary. smile.

С CFile::typeText то же самое.

Это сообщение отредактировал(а) lv151 - 24.7.2009, 15:16
PM MAIL   Вверх
azesmcar
Дата 24.7.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Код

CStdioFile file;
if (file.Open(_T("d:\\1.txt"), CFile::modeCreate | CFile::modeReadWrite | CFile::typeBinary))
   file.WriteString(_T("str"));

Посмотри разницу в настройках юникода в дебаге и в релизе.

Это сообщение отредактировал(а) azesmcar - 24.7.2009, 15:17
PM   Вверх
Andrey44
Дата 24.7.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Цитата(azesmcar @  24.7.2009,  15:16 Найти цитируемый пост)
Посмотри разницу в настройках юникода в дебаге и в релизе.

Согласен с azesmcar, у тебя настройки в дебаге и релизе разные.

Добавлено @ 15:22
А что-бы CFile::typeBinary пиши 
Код

TCHAR *data = _T("str");
file.Write((void*)data, wcslen(data) * sizeof TCHAR);


Это сообщение отредактировал(а) Andrey44 - 24.7.2009, 15:27


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
lv151
Дата 24.7.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Ползаю по свойствам проекта и не могу найти настройку юникода smile
В Project Options её нет.

Это сообщение отредактировал(а) lv151 - 24.7.2009, 15:42
PM MAIL   Вверх
azesmcar
Дата 24.7.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



user posted image
PM   Вверх
lv151
Дата 24.7.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



VC6 smile
PM MAIL   Вверх
azesmcar
Дата 24.7.2009, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата(lv151 @  24.7.2009,  15:54 Найти цитируемый пост)
VC6 smile 

У нас запрещено хранение антиквариатов smile 
PM   Вверх
lv151
Дата 24.7.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



smile
PM MAIL   Вверх
Albor
Дата 24.7.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 7
Всего: 9



Проверил в 6й студии - всё работает нормально и в дебаге и в релизе.
PM MAIL ICQ   Вверх
lv151
Дата 24.7.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Кому то везёт smile
PM MAIL   Вверх
lv151
Дата 28.7.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



First chance exception 0xC0000005 ACCESS_VIOLATION occurred at 0x7C90100B, read of address 0x00000034 at 0x7C90100B (in C:\WINDOWS\system32\ntdll.dll) 1168 14:50:43:083 
    0x7C90100B RtlEnterCriticalSection + 0xB in ntdll.dll 1168   
    0x77C40EFA fputs + 0x27 in msvcrt.dll 1168   
    0x5F45FA20 + 0x10 in mfc42.dll 1168   
    0x004056AE ttt.exe 1168   
    0x004053BB ttt.exe 1168   
    0x7E42F3C2 SendMessageA in user32.dll 1168   
    0x00408DCA ttt.exe 1168   
    0x004034F1 ttt.exe 1168   
    0x7C802600 WaitForSingleObjectEx + 0xB0 in kernel32.dll 1168   
    0x5F4186ED + 0x18C in mfc42.dll 

Вот что показал AQTime.

Это сообщение отредактировал(а) lv151 - 28.7.2009, 14:54
PM MAIL   Вверх
Peter
Дата 31.7.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: нет
Всего: 1



Это в функции main (или ее аналоге) всего лишь три строчки? Я бы в первую очередь проверил, на какой команде грохается. Вставил бы через строчку оповещение типа MessageBox() или записи в лог.
Бывает, что Debug отличается от Release разным заполнением неинициализированных переменных. Когда все переменные инициализированы, они работают одинаково.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
lv151
Дата 5.8.2009, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Я MessageBox()-ми и ловил smile.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.2072 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.