Форум программистов, компьютерный форум CyberForum.ru

Не работает считывание из файла - C++

Восстановить пароль Регистрация
 
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
16.09.2012, 12:31     Не работает считывание из файла #1
C++
1
2
3
4
5
6
7
8
9
10
11
char* Text::GetDataFromFile(char* Location)
{
    char Data[MAX_PROGRAMFILE_DATA];
    DWORD Size;
    DWORD R;
    HANDLE File = CreateFile((wchar_t*)Location, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
    if(File == INVALID_HANDLE_VALUE) return '\0';
    GetFileSize(File,&Size);
    if(!ReadFile(File,Data, Size, &R, NULL)) return '\0';
    return Data;
}
И почему-то ошибка StackOverflowException в CreateFile().

Мне надо считать бинарный файл и запустить его, как процесс (тут просто считывание). Может есть способ получше?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2012, 12:31     Не работает считывание из файла
Посмотрите здесь:

Считывание из бинарного файла в массив_не работает! C++
Считывание с файла C++
C++ Считывание из файла.
C++ Считывание из файла
считывание из файла c++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
16.09.2012, 12:39     Не работает считывание из файла #2
MAX_PROGRAMFILE_DATA - это скока? Не слишком ли много? Способ получше для считывания - сначала узнать размер файла, а потом динамически выделить память через LocalAlloc (и не забыть освободить её через LocalFree, когда она уже не нужна). Способ получше для запуска процесса - не читать файл, а запустить его сразу через CreateProcess.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
16.09.2012, 12:40  [ТС]     Не работает считывание из файла #3
#define MAX_PROGRAMFILE_DATA 12*1024*1024 // 12 MB
Вроде не очень много) И надо именно считывать
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
16.09.2012, 12:41     Не работает считывание из файла #4
Для стека (а массив Data размещается на стеке) - неприлично много. Если не ошибаюсь, по умолчанию размер стека 1 мегабайт.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
16.09.2012, 12:46  [ТС]     Не работает считывание из файла #5
Уменьшив размер до 15 кб, получил ошибку System.NullReferenceException (файл меньше 15)
Но почему 0?
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
17.09.2012, 19:52  [ТС]     Не работает считывание из файла #6
Ап тему! что делать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2012, 20:12     Не работает считывание из файла
Еще ссылки по теме:

C++ Считывание из файла
C++ Считывание из файла
Считывание с файла C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
18.09.2012, 20:12     Не работает считывание из файла #7
Ну для начала разобраться с "широкими" и "узкими" символами. Преобразовывать насильно char* к wchar_t* - это принудительная инъекция себе геморроя. Всё равно что налепить наклейку "аспирин" на банку с пургеном и пить, надеясь, что подействует как аспирин. Если программа юникодная, а имя файла обычное, надо вызывать CreateFileA.
Yandex
Объявления
18.09.2012, 20:12     Не работает считывание из файла
Ответ Создать тему
Опции темы

Текущее время: 00:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru