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

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

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

Ресурсы - C++

28.12.2008, 23:27. Просмотров 925. Ответов 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++
Добрый день! Встал вопрос, возможно надуманный. void* a(void* argv) { while(1) { cout << (char*)argv; } } ...

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6474 / 2249 / 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
Почетный модератор
6474 / 2249 / 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
Почетный модератор
6474 / 2249 / 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
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
29.12.2008, 00:04     Ресурсы #8
Грузи ресурс. Получишь глобальный хэндл. Потом лочишь его:
LockResource
и получаешь указатель. Читай с указателя, как те угодно.

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

P. P. S.
:)
забил я, вообщем. не понятен мне ваш подход...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2008, 00:10     Ресурсы
Еще ссылки по теме:

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

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

Ресурсы. Как достать и скопировать файл. - C++
У меня такой вопрос как из ресурса достать кокой то файл и скопировать его в какую нибудь директорию?

Как узнать сложность алгоритма(ресурсы ,способы) - C++
Здравствуйте, нужно узнать сложность какой-нибудь ф-ии из стандартной библиотеки cpp. Где это можно узнать? Например max_element(it it)...

Как сохранить в бинарный файл ресурсы, указатели на которые лежат в векторе? - C++
Здравствуйте! Вот есть такая програмка: #include <iostream> #include <vector> #define FIELD_LENGHT 20 using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
Сантехник
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
29.12.2008, 00:10  [ТС]     Ресурсы #9
вобщем, как я понял с помощью LockResource я получу указатель на начало
буфера ресурса)
большое спасибо дальше разберусь!
Yandex
Объявления
29.12.2008, 00:10     Ресурсы
Ответ Создать тему
Опции темы

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