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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
#1

Ресурсы - C++

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

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

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

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

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

FildResource() никак не помог)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2008, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ресурсы (C++):

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

Борьба за ресурсы - C++
Добрый день! Встал вопрос, возможно надуманный. void* a(void* argv) { while(1) { cout << (char*)argv; } } ...

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

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

VC++2010 не могу открыть ресурсы - C++
Снова обращаюсь к уважаемому обществу. На этот раз проблема такая (VS2010 Professional, консольное приложение). Включил текстовый файл...

Лучшие ресурсы в Интернет - разработчикам C++ - C++
Все источники широко известны - но тем не менее: http://strongcpp.blogspot.ru/2013/04/c.html

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.12.2008, 23:34 #2
Почему не помог FindResource? И Load-функции тоже не работают? Всегда нормально ресурсы доставал через эти функции.
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
28.12.2008, 23:41  [ТС] #3
функция FindResource возвращает структуру HRSRC
а функция ReadFile требует HANDLE тоесть просто void*
что вызывает ошибку при чтении
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.12.2008, 23:46 #4
Ты не ответил на вопрос о Load-функциях.
Сантехник
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,...);
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
29.12.2008, 00:00 #6
Глупость какая-то. При чем тут ресурсы и ReadFile? На фига тебе понадобилось ресурсы читать именно с помощью этой функции?
А еще можно с word'ом связать не через ole, а докопаться до его меню и посылать виндовые сообщения. Тяжелый случай...

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

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

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

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

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

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

Как засканировать сетевые ресурсы? - C++
Помоготе, не могу засканить сетевые ресуры, к примеру, надо создать массивчик сетевых ресурсов. Какой процедурой перейти в какой нибудь...

Как добавить ресурсы(картинку) в CodeBlocks - C++
Ребята, пожалуйста, помогите не могу добавить картинку в opengl(codeblocks)!

как применять diff файл на ресурсы c++ - C++
как применять diff файл на ресурсы c++ такие файлы как .c и .h желательно на гайдик ссылку PS: может быть не там написал, заранее...

MFC Visual Studio посоветуйте ресурсы - C++
Посоветуйте хорошие сайты или книги чтобы разобраться с MFC


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.12.2008, 00:10
Ответ Создать тему
Опции темы

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