Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не открывает файл

64K
16 декабря 2010 года
SaV-94
6 / / 05.11.2010
Работаю с файлами через потоки C++. Все вроде бы работает, но только когда запускаю программу из среды. Запуская же ее отдельно выдает окно "Не отправлять отчет" с ошибкой StackHash_20e. Я установил, что эта вещь появляется во время прямого открытия файла. Переписав блок кода через функции WinApi в CreateFile опять появляется ошибка, но связанная с библиотекой kernel. Через средства C не пробовал, но думаю ошибка не исчезнет.
Подскажите пожалуйста как исправить сие дело.

Пишу в MS Visual Studio 2010.

PS. в других программах такого не наблюдал.
PPS. Предполагаю, что проблема с памятью, т.к. отлаживая ошибку кидает в исходники malloc()
11
16 декабря 2010 года
oxotnik333
2.9K / / 03.08.2007
проблемный код где?
64K
16 декабря 2010 года
SaV-94
6 / / 05.11.2010
Не думаю, что поможет.

Код:
SHCreateDirectoryEx(NULL, this->Directory, NULL);
TCHAR filename[512];
memset((void*) filename, 0, sizeof(filename));
wsprintf(filename, L"%s%s%s\0", this->Directory, this->ProjName, L".cncprj");
std::wfstream fileOut;
fileOut.open((wchar_t*)filename, std::ios::in|std::ios::binary);//ошибка здесь
if(!fileOut)
{
    return;
}
//Чтение
fileOut.close();
64K
16 декабря 2010 года
SaV-94
6 / / 05.11.2010
Если поможет, добавлю.

Вот что вылетает:

Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: CNCPainter.exe
Версия приложения: 1.0.0.1
Отметка времени приложения: 4d0a2a73
Имя модуля с ошибкой: StackHash_c20e
Версия модуля с ошибкой: 6.1.7600.16559
Отметка времени модуля с ошибкой: 4ba9b29c
Код исключения: c0000374
Смещение исключения: 000cdc9b
Версия ОС: 6.1.7600.2.0.0.256.1
Код языка: 1049
Дополнительные сведения 1: c20e
Дополнительные сведения 2: c20ee8eedd20b6357b0b9c6ecbd30d5c
Дополнительные сведения 3: 4a7e
Дополнительные сведения 4: 4a7e8eaf87975c827651b15f18612fea
64K
17 декабря 2010 года
SaV-94
6 / / 05.11.2010
Я кое-что узнал. DEP блокирует выделение памяти. При режимах совместимости с Windows XP все работает нормально. Кто знает как его программно отключить?
10
17 декабря 2010 года
Freeman
3.2K / / 06.03.2004
Код явно небезопасный -- перемешаны TCHAR с wchar_t и префиксом L. Либо везде явно используй Юникод, либо _t-функции, чтобы не зависеть от типа проекта.
64K
18 декабря 2010 года
SaV-94
6 / / 05.11.2010
Проект в Юникоде. То что перемешано я знаю. Но TCHAR это макропереопределение wchar_t, так что разницы не вижу.
5
18 декабря 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: SaV-94
Проект в Юникоде. То что перемешано я знаю. Но TCHAR это макропереопределение wchar_t, так что разницы не вижу.


В какой системе? ;) Система уж точно так не считает, раз у тебя память портится.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог