Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 18:54   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Грузануть битмап[ы] из внешнего переименованного res`а (в HBitMap)

Собственно имеется Interface.res. Я его переименовал в Interface.pack, чтобы не особо палиться. Структура директорий:
/Resource/INTERFACE.PACK (приложение лежит в корне). Информацию о директориях держу в записи:
Код:
   TDirectory = Record
              ExeDir   : ShortString;
              MainData : ShortString;
              Resource : ShortString;
   End;
---
Procedure FillDirectory;
 Begin
  GetDir(0, Directory.ExeDir);
  Directory.MainData := Directory.ExeDir + '\MainData\';
  Directory.Resource := Directory.ExeDir + '\Resource\';
 End;
Имею ряд HBitMap`ов :
Код:
Type
   TStaticImage  = Record
                   Handle   : HWND;
                   BitMap   : HBitMap;
   End;
   TDynamicImage = Record
                   Handle   : HWND;
                   BitMap   : Array of HBitMap;
   End;
---
   IMGTop     : TDynamicImage;
   IMGDown    : TDynamicImage;
   IMGLeft    : TStaticImage;
   IMGRight   : TStaticImage;
   IMGMiddle  : TStaticImage;
Ну и сам сабж собственно: Как грузануть например в IMGLeft.BitMap картинку из Реса с обозначением "LEFT"?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 17.11.2009, 19:17   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

1. Что-то напоминает недавнюю тему что-то вроде "зашифровать мои картинки"
2. Создайте папку рядом с exe, к примеру Images\ и киньте туда все свои картинки. Че выдумывать то ?
BOBAH13 вне форума Ответить с цитированием
Старый 17.11.2009, 19:38   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Может быть LoadBitmap подойдет ?
Ой не понял что-то, что из внешнего файла грузить надо
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 17.11.2009 в 19:42.
Goodwin98 вне форума Ответить с цитированием
Старый 17.11.2009, 19:43   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
HINSTANCE hInstance, // дескриптор экземпляра приложения
Т.е. мне придется перед загрузкой переименовать res в стандартный формат и подключить динамически? Или можно без переименования?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 17.11.2009 в 19:56.
Alex Cones вне форума Ответить с цитированием
Старый 17.11.2009, 21:20   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...собственно:
Код:
hBitmap:= Loadbitmap(hInstance, name_res)
а с этим уже разобрались? имею ввиду динамическое подключение внешнего-любого ресурса (пост #17)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 17.11.2009, 21:25   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Спасибо! Сейчас буду.
----
Увы нет. И ББ(Google) Тоже молчит.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 17.11.2009 в 21:38.
Alex Cones вне форума Ответить с цитированием
Старый 17.11.2009, 21:29   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

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

upd
--------

Цитата:
Увы нет. И ББ(Google) Тоже молчит.
раз это может image editor и workshop значит это возможно... обращусь-ка к первоисточникам


upd-2
--------

вот что интересно, в NET есть то что нужно... раз есть там...
Цитата:
Например, чтобы приложение могло использовать MyStrings.resources как внешний файл, необходимо выдать команду:csc Form1.cs /linkres:MyStrings.resources
>>> описание <<<


upd-3
--------

вот что нарыл >>> статья <<<
и в связи с этим есть следующая мысль - реализовать обходной путь, а именно:
1) у нас есть некий внешний ресурс RES (любой) из которого нужно достать все "включения"
2) с помощью линкера <Ilink32.exe> из файла RES (см. статью) мы получаем *.dll (...имя любое) - РАБОТАЕТ, СОЗДАЕТ, но неправильно, из-за чего подключить нельзя
3) данную DLL мы уже можем динамически прилинковать к нашему проекту
4) получив handle, мы тем самым автоматически получаем доступ к ресурсам библиотеки DLL - ЭТО РАБОТАЕТ, если dll создана в IDE среде
Код:
library plug;

{$R ilogo.RES}

end.
, а не <Ilink32.exe>
(образ не NT...дело в объектном файле)

Код:
var h: thandle; Res: TResourceStream;
begin
  handle:=  LoadLibrary('plug.dll');
  if handle <> 0 then begin
    res:= TResourceStream.Create(handle,'#1',RT_RCDATA);
    res.saveToFile('temp.bmp');
    res.free;
  end;
т.о.: для реализации нужен "нормальный" линковщик RES->DLL ...или искать иной "менее кривой" способ
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 18.11.2009 в 00:41.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Del] TCanvas.pixels → HBitMap Alex Cones Win Api 11 21.11.2009 19:54
Drag & Drop + HBitmap BOBAH13 Win Api 6 19.07.2009 00:17
Вывод HBITMAP AidarBik Win Api 7 30.07.2008 14:21
Как нарисовать на КАНВАС-е БИТМАП. Altera Общие вопросы Delphi 3 09.03.2008 15:41
Как из DIBSECTION востановить HBITMAP drd Win Api 1 06.03.2008 22:01