![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как достать Bitmap из ресурса DLL [D5, Win95/98]
Егорычев М © (2003-02-04 14:12:00)Господа программеры!
Подскажите, плз, как достать Bitmap из DLL. DLL написана
на Delphi.
MARcoDEN (2003-02-06 10:13:00) [1]AModule: THandle;
AModule := LoadLibrary(...);
Bitmap.LoadFromResourceName(AModule, <название картинки>);
FreeLibrary(AModule);
Егорычев М (2003-02-06 09:23:00) [2]Спасибо ОГРОМНОЕ!
Работает чудно. EXE"шник похудел аж на 200 kb
function GetBmp(i: integer): HBITMAP; stdcall; export;
var
bmp : TBitmap;
begin
bmp:=TBitmap.Create;
case i of
1 : bmp.LoadFromResourceName(hInstance,"NEW");
2 : bmp.LoadFromResourceName(hInstance,"OPEN");
...
...
end;//case
Result:=bmp.Handle;
end;
Songoku (2003-02-05 17:14:00) [3]Игорь Шевченко:
EntDialog.rc
___________________
#define Bit 12
Bit BITMAP "18.bmp"
___________________
...........
{$R "EntDialog.res"}
.........
CreateWindow("static",nil,SS_BITMAP or WS_CHILD or WS_VISIBLE,120,94,70,23,Handle,116,0,nil);
SendMessage(GetDlgItem(Handle,116),STM_SETIMAGE,IMAGE_BITMAP,LoadBitmap(GetModuleHandle(nil),MAKEINTRESOURCE(12)));
Игорь Шевченко (2003-02-05 16:39:00) [4]Songoku (05.02.03 16:27)
Это, пардон, к чему ? :-)))
Songoku (2003-02-05 16:27:00) [5]SendMessage(GetDlgItem(hwnd,116),STM_SETIMAGE,IMAGE_BITMAP,LoadBitmap(GetModuleHandle(nil),MAKEINTRESOURCE(12)));
Игорь Шевченко (2003-02-04 17:48:00) [6]Естественно вылезает. Нельзя классы из DLL в EXE передавать.
Передавай HBITMAP, т.е. Bitmap.Handle
Егорычев М (2003-02-04 17:26:00) [7]Извините, я те так выразился.:-)
Существует EXE"шник и DLL. В ресурсе DLL находится
около 50 Bitmap"ов. Как бы их вытащить (по индексу, например).
Пытался вот так:
(DLL)
function GetBMP(i : index): TBitmap; stdcall;
var
bmp :TBitmap;
begin
bmp:=TBitmap.Create;
case i of
...
3 : bmp.LoadFromResourseName(hInstance,"имя_Bitmap");
...
end;//case
Result:=bmp;
end;
или
procedure GetBMP(i : index;bmp : TBitmap); stdcall;
begin
case i of
...
3 : bmp.LoadFromResourseName(hInstance,"имя_Bitmap");
...
end;//case
end;
Вообщем вылезает ошибка. :-(((
Подскажите братцы, в чем дело...
Игорь Шевченко (2003-02-04 15:16:00) [8]LoadBitmap, как обычно