Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
1

Ресурсы

28.12.2008, 23:27. Просмотров 1113. Ответов 8
Метки нет (Все метки)

Подскажите каким образом можно открыть для чтения ресур?
нужно открыть так чтобы можно было читать функцией ReadFile();

Смог сделать только зная оффсет этого ресурса в файле приложения.

Код
HANDLE file=OpenFile(__argv[0],...)
SetFilePointer(file,offset,...)

ReadFile(file,...)
но этот способ не очень удобный
хотелось бы сделать это как то используя специальные функции для ресурсов

FildResource() никак не помог)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2008, 23:27
Ответы с готовыми решениями:

полезные ресурсы
Доброго времени суток. Недавно начал изучать с++ и хочу поинтересоваться у...

Борьба за ресурсы
Добрый день! Встал вопрос, возможно надуманный. void* a(void* argv) { ...

Как присоединять ресурсы?
Есть некоторый массив данных довольно большого размера, чтобы превращать его в...

Информационные ресурсы по формулам.
Доброго времени суток! Поделитесь пожалуйста ссылками на ресурсы которые...

VC++2010 не могу открыть ресурсы
Снова обращаюсь к уважаемому обществу. На этот раз проблема такая (VS2010...

8
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
28.12.2008, 23:34 2
Почему не помог FindResource? И Load-функции тоже не работают? Всегда нормально ресурсы доставал через эти функции.
0
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
28.12.2008, 23:41  [ТС] 3
функция FindResource возвращает структуру HRSRC
а функция ReadFile требует HANDLE тоесть просто void*
что вызывает ошибку при чтении
0
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
28.12.2008, 23:46 4
Ты не ответил на вопрос о Load-функциях.
0
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
28.12.2008, 23:55  [ТС] 5
Сделал так:

Код
//в файле resource.h #define IDR_SPRITE1 101

//в моем коде
HRSRC res=FindResource(GetModuleHandle(0),LPSTR(IDR_SPRITE1),"SPRITE");
HANDLE file=LoadResource(GetModuleHandle(0),res);

// тут прога вылетает

ReadFile(file,...);
0
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
29.12.2008, 00:00 6
Глупость какая-то. При чем тут ресурсы и ReadFile? На фига тебе понадобилось ресурсы читать именно с помощью этой функции?
А еще можно с word'ом связать не через ole, а докопаться до его меню и посылать виндовые сообщения. Тяжелый случай...

Слова "тут" не существует. На вызове какой функции?

Добавлено через 3 минуты 28 секунд
хех... ты свой экзешник читаешь? весело ты вообще кодишь...

Добавлено через 1 минуту 55 секунд
Хех, с чего ты вообще взял, что там у тебя хэндл файла возвращается? Блин, зачем ты на него ReadFile травишь? Дурдом какой-то...
0
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
29.12.2008, 00:04  [ТС] 7
У меня есть функция типа function(HANDLE) по чтению файлов типа SPRITE;
тоесть читать может именно с файлов и использует ReadFile();

а заказчик потребовал чтобы прога состояла из одного екзешника.
0
Vourhey
Почетный модератор
6492 / 2266 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
29.12.2008, 00:04 8
Грузи ресурс. Получишь глобальный хэндл. Потом лочишь его:
LockResource
и получаешь указатель. Читай с указателя, как те угодно.

P. S. читай документацию, а то че-то ты хэндлы на файлы, указатели...все перепутал.

P. P. S.
:)
забил я, вообщем. не понятен мне ваш подход...
0
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
29.12.2008, 00:10  [ТС] 9
вобщем, как я понял с помощью LockResource я получу указатель на начало
буфера ресурса)
большое спасибо дальше разберусь!
0
29.12.2008, 00:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2008, 00:10

Лучшие ресурсы в Интернет - разработчикам C++
Все источники широко известны - но тем не менее: ...

Подскажите интернет ресурсы с задачами
Подскажите интернет ресурс, где есть различные задачи которые можно реализовать...

Как засканировать сетевые ресурсы?
Помоготе, не могу засканить сетевые ресуры, к примеру, надо создать массивчик...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru