Ресурсы

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Ресурсы

Сообщение Saturn.65 » 01.10.2007 (Пн) 20:50

Хотел бы узнать побольше о RES файлах.
1. Какая от них польза? Я понимаю, что туда можно засунуть музыку, курсор, картинки и т.д. А чем хуже эти файлы распологать просто рядом с exe? Картинки можно ведь и на форме сохранить.
2. Можно ли их использовать для хранения информации, как например реестр или файл txt? Мне кажется нет. Можно только извлекать. Или я ошибаюсь?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 01.10.2007 (Пн) 20:54

1.
Какая от них польза?
Чтобы не хранить в файлах.
Картинки можно ведь и на форме сохранить.
В принципе это тоже некоторым образом ресурсы.

2. Не ошибаешься.
Лучший способ понять что-то самому — объяснить это другому.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 01.10.2007 (Пн) 20:55

Ресурсы - встроенный механизм, для хранения не относящихся к коду данных в исполняемом файле. Вещь полезная, туда, к примеру, XP-шный манифест засовывается, инфа о версии, иконка.
Изображение

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 01.10.2007 (Пн) 21:19

Значит, как я и предпологал: один файл вместо нескольких. Разве что никто половину программы не удалит.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.10.2007 (Пн) 21:53

Ресурсы - поддерживаемый на уровне PE-формата способ иерархического представлеения данных. Т.е. представления данных в виде дерева. Вложенность может достигать 31. В винде используется только 2 уровня вложенности.

Преимущества ресурсов:
1) Наличие готового функционала для работы ним.
2) Отличная возможность сделать возможным проведение локализации программы - храни в ресурсах тексты, диалоговые окна, меню, акселераторы, картинки, иконки, Version-Info.

Однако вообще в реестре можно хранить всё что угодно, например TLB.
3) Наличие огромного множества редакторов ресурсов.
4) Ресурсы маппятся в память, поэтмоу при загрузки нескольких экземпляров приложения оперативная память расходоваться не будет.
5) И т.п. :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2007 (Пн) 21:58

Ничем ресурсы принципиально не отличаются от файлов, лежащих в папке с прогой.
Манифест тоже можно рядом положить, и он будет работать.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.10.2007 (Пн) 22:13

tyomitch
Ага. А иконку можно положить рядом с прогой, чтобы она с ней ассоциировалась? А version-инфо?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2007 (Пн) 22:21

Хакер писал(а):Ага. А иконку можно положить рядом с прогой, чтобы она с ней ассоциировалась?

А зачем её ассоциировать?
В ярлыке на прогу можно прописать произвольный .ico
В ассоциации документов можно прописать произвольный .ico
Больше нигде пользователь ассоциированную иконку всё равно не увидит.

Хакер писал(а):А version-инфо?

А оно зачем?
Нынче в моде большие винты, sxs-развёртывание, и присутствие статыщ экземпляров одного компонента в разных уголках системы ;-)
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.10.2007 (Пн) 22:27

А зачем её ассоциировать?
В ярлыке на прогу можно прописать произвольный .ico
В ассоциации документов можно прописать произвольный .ico
Больше нигде пользователь ассоциированную иконку всё равно не увидит.


А теперь представь файл Setup.exe, который ты скачал с инета. Или unrar_sfx.exe.

А оно зачем?

Чтобы прочитать описание библы/приложения, копирайты, автора и т.д.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 02.10.2007 (Вт) 8:01

Опять спор о разных уровнях знания компа, работы с компом, интереса к компу. Перенеситесь в холивар, раз на то пошло.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 06.10.2007 (Сб) 14:59

А скажите, если в ресурсы добавить HTML страницу, будет ли она воспроизводится как положено, с картинками JS и т.д. И как ее туда добавить? К этой странице идет ведь папка с картинками. Т.е. надо и эту папку как-то туда запихнуть.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 06.10.2007 (Сб) 16:09

Способность страницы отображать картинки и исполнять JS-скриты предоставляется броузером, и по этому не зависит от способа хранения и местонахождения страницы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 06.10.2007 (Сб) 18:43

Хакер писал(а):Способность страницы отображать картинки и исполнять JS-скриты предоставляется броузером, и по этому не зависит от способа хранения и местонахождения страницы.

Я в общем это предпологал. Не в форме же будет показывать. Просто иногда CHM делаешь, то не все отображается. Но спросить не повредит. Это уже хорошо. Но вот как с папкой для HTML быть?
Ее же тоже в ресурсы надо добавить. Но это пол беды. Откроешь страницу HTML, в ней ссылки на картинки, а картинки в папке. :?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 06.10.2007 (Сб) 18:48

Зацени res:// в начале запроса браузера.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 06.10.2007 (Сб) 19:14

Ее же тоже в ресурсы надо добавить. Но это пол беды. Откроешь страницу HTML, в ней ссылки на картинки, а картинки в папке

А ты их в ресурсы, ... в ресурсы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 06.10.2007 (Сб) 19:37

Хакер писал(а):
Ее же тоже в ресурсы надо добавить. Но это пол беды. Откроешь страницу HTML, в ней ссылки на картинки, а картинки в папке

А ты их в ресурсы, ... в ресурсы.

Идея конечно. :wink: А в страничке как писать?
Код: Выделить всё
<img style="MARGIN: 10px" src="1/dcp.gif" name="SlideShow" align="left" border="0"
    width="170" height="170">

Не напишешь же src="*.RES/dcp.gif" :D

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 06.10.2007 (Сб) 19:51

src="res://shdoclc.dll/pagerror.gif"
(для большей убедительности взят реально существующий файл)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 06.10.2007 (Сб) 20:02

Хакер писал(а):src="res://shdoclc.dll/pagerror.gif"
(для большей убедительности взят реально существующий файл)

Это другое дело. Тогда конечно можно. Если у меня например HTML.RES то как мне точнее ссылку зыписать? src="res://HTML.RES/pagerror.gif" ?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.10.2007 (Вс) 8:00

Saturn.65
если HTML.RES является файлом PE-формата, то также как ты записал.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 11.10.2007 (Чт) 8:32

Еще хочу малость спросить.
Вот добавил я в ресурсы X.exe. Вот я извлекаю его:
Код: Выделить всё
Dim B() as Byte
      'index = идентификационный номер строки, в файле-ресурсе
      B = LoadResData(index, "CUSTOM")
      Dim FF as Integer
      FF = FreeFile
      Open "X.exe" For Binary As #FF
         Put #FF, ,B()
      Close #FF


Он извлекается. А можно ли как-нибудь так, чтоб его сразу Shell, без извлечения на диск?
Что нибудь такое не пойдет? Shell="res://TRATATA.RES/X.exe " ?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.10.2007 (Чт) 9:57

А это стоит в поиске пошуршать, обсуждалось это.
Весь мир матрица, а мы в нем потоки байтов!

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 12.10.2007 (Пт) 7:10

Все больше узнаю. Но вопросы еще есть. :wink:
Хотел добавить в ресурсы целую папку с файлами. Что-то папка не хочет добавлятся. Должно быть это не возможно.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 12.10.2007 (Пт) 7:41

Хакер писал(а):src="res://shdoclc.dll/pagerror.gif"
(для большей убедительности взят реально существующий файл)

Попробовал. Загрузилось. :D А как быть в моем случае. Вот например у меня X.exe. В нем файл ресурсов Y.RES. загружать мне надо с него.
src="res:// X.exe/pagerror.gif"? Что то не хочет. Может пути надо прописывать? Или я Y.RES не указал. Всяко пробовал.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.10.2007 (Пт) 13:00

Saturn.65
Внутри exe файла нет res файла.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 13.10.2007 (Сб) 7:41

Хакер писал(а):Saturn.65
Внутри exe файла нет res файла.

Спорить конечно не буду, а где он распологается тогда после компиляции? Есть образец: музыка в ресурсах. Один exe. А музыка играет. :?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.10.2007 (Сб) 12:10

Saturn.65
Данные располагаются в exe файле. Но лежат они там совершенно не так, как они лежат в в Win32 res-файле.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 6

    TopList