Ресурсы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Fridx
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 18.01.2006 (Ср) 4:03

Ресурсы

Сообщение Fridx » 19.02.2006 (Вс) 3:49

Вот хочу инсталлер сделать простой. Нашёл на форуме темы, но везде говорится, что надо использывать файлы ресурсов. А как их делать, откуда они берутся даж и не знаю....

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.02.2006 (Вс) 6:04

Простой инсталлер не получится.
Сложных море, в т.ч. с исходниками.
Мож не надо?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Fridx
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 18.01.2006 (Ср) 4:03

Сообщение Fridx » 19.02.2006 (Вс) 11:54

Ну с обыкновенными я знаком типа InnoSetup и т.п.
Или ты про инсталлеры на ВБ? Тогда надо, желательно с исходниками.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 19.02.2006 (Вс) 11:58

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.02.2006 (Вс) 11:58

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

Fridx
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 18.01.2006 (Ср) 4:03

Сообщение Fridx » 19.02.2006 (Вс) 14:13

Хм.. ну это ладно. А вот про ресурсы. Будет у меня файл (например zzz.res) в нём будет строка записана определённая, которая должна будет после запуска экзешника записаться в файл, который я укажу в пути. Т.е. типа патчинг... Ну можно конечно в sfx архив фсё это запихать (экзешник + zzz.res) а после распаковки sfx запустит экзешник и пропатчит указанный файл. А вот как сделать всё одним экзешником??? Т.е. чтобы это самый zzz.res был в экзешнике уже?

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

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

Ну так добавь этот res-файл в VB-проект, а потом LoadResString'ом получай нужную тебе строку. А лучше совать в res-файл не STRINGTABLE, а CustomResourse и грузить LoadResDate'ом
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Fridx
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 18.01.2006 (Ср) 4:03

Сообщение Fridx » 19.02.2006 (Вс) 20:47

Вот. Можно подробнее про это. Как что именно делать. Я же с таким еще не сталкивался.

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

Сообщение Хакер » 19.02.2006 (Вс) 20:54

Начнём с того, есть ли у тебя RES-файл или нет. Если есть то
Project->Add File (Ctrl-Add), и добавляй свой RES-файл. А потом спрашивай меня дальше...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Fridx
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 18.01.2006 (Ср) 4:03

Сообщение Fridx » 19.02.2006 (Вс) 22:17

Погоди. Что вообще тако res файл? Я в данный момент думаю, что это просто файл с набором инфы. Т.е. в моём res файле например содержится строка-часть обновляемого файла, которую мы будем записывать в файл, который требуется обновить\создать.

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

Сообщение Хакер » 19.02.2006 (Вс) 22:56

Уууу как всё запущено.

Буду "объяснять на пальцах"
RES-файл, это файл ресурсов. Любая программа Windows может иметь ресурсы. Под ресурсами программы следует понимать блоки информации, имеющие своё имя и тип (также могут быть и другие свойства). Таким образом программа может хранить какие-то данные внутри себя и легко их получать. Существует множество общепринятых типов ресурсов, вот они:
BITMAP
CURSOR
BINARY
DIALOG
MENU
MENU_ACCELERATOR
STRING_TABLE
ICON
VERSION_INFO

VB6 умеет работать только с 5 из них, а именно Bitmap, Icon, Cursor, StringTable, Binary. Для работы с остальными придётся использовать API.

Ресурс, хранящий bmp-картинку должен иметь тип Bitmap
Ресурс, хранящий ico-иконку - ICON, cur-курсор - CURSOR, соответственно.

Ресурс, хранящий таблицу, в которой размещены строки - StringTable
Если же требуется хранить что-то специфическое, например звук лучше использовать тип Binary - в VB он называется Custom.

Для того, чтобы сделать файл ресурсов существуют редакторы ресурсов. Чтобы сделать ресурс, который мы будем использовать в VB-программе лучше использовать встроенный в VB редактор ресурсов.

После того как EXE будет скомпилирован, вся информация из файла ресурсов будет перенесена в EXE.

Итак, разберём механизм извлечения данных из ресурсов. В ВБ для этого имеется 3 метода
LoadResPicture
LoadResData
LoadResString.

LoadResString возвращает нам строку, взятую из ресурсов. Т.к. каждая строка имеет свой идентификатор, чтобы её получить мы должны передать иден. этой функции.

Например


Код: Выделить всё

Dim lang_Yes As String
lang_Yes = LoadResString(153)


У строк могут быть только числовые идентификаторы.


LoadResPicture - загружает картинку, иконку, курсор в завис. от аргумента "ТИП". ID-также только числовой. То что можно указывать тип говорит о том, что можно иметь у себя и иконку, и курсор с одинаковым ID'ом одновременно.

LoadResData - возвращает данные ресурса типа CUSTOM, фактически - возвращает массив типа Byte, каждый элемент которого - байт из этих кастом-данных. Обычно при создании CUSTOM-ресурса, ты просто указываешь файл, из которого вся информация будет скопирована в новый ресурс.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение Хакер » 19.02.2006 (Вс) 23:01

А вообще, если ты собираешься делать инсталлятор, лучше не использовать ресурсы, а либо помещать всё в конец файла, либо в отдельный файл-архив. Рекомендую почитать мою статью, про создание программы хранящие много файлов в одном. Такчто если будут вопросы - пишы, я в отличи от некоторых, не привык посылать в поиск.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Fridx
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 18.01.2006 (Ср) 4:03

Сообщение Fridx » 20.02.2006 (Пн) 10:56

Во. Спасибо. Теперь долго докучать не буду :) Разбираться начну :roll:


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 97

    TopList