Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добрый вечер! Срочно нужет ответ на два простых вопроса... [D3, Win95/98, WinME, NT4]


allrussia ©   (2002-05-05 23:30:00) 

1. Как загрузить DLL, скомпилированную в исполняемый файл, и использовать ее функции?

Обычно я загружаю DLL с помощью
LoadLibrary, а далее для вызова функций GetProcAddress.
Но там надо указать путь к библиотеке, а как это сделать, когда DLL скомпилирована в ресурс проекта?
Я пытался с помощью FindResource и LoadResource, но не работает, или как-то криво я пытался.

2. Как достать ресурс (допустим картинку) из файла RES (файл НЕ скомпилирован с проектом) и подгрузить его в проект?


oomneeq   (2002-05-06 17:28:00) [1]

hehe
cходил бы на гугль находится с полпинка

http://delphi.vitpc.com/helloworld/usesdll.htm

Там есть твоя задачка


nil   (2002-05-06 16:25:00) [2]

во, во, иди......


allrussia   (2002-05-06 11:25:00) [3]

hehe, BCEM CnaCu6o

Мне пора на более сер Ъезный форум...


Anatoly Podgoretsky   (2002-05-06 10:49:00) [4]

Так тебе не в проект, а в программу
Ищи описание формата и ручками его парсинг


allrussia   (2002-05-06 10:24:00) [5]

Adder>>>

Спасибо, ты один врубился...

Как грузить ресурсы из DLL я знаю, нужно именно из RES файла.


Adder   (2002-05-06 09:33:00) [6]

продолжение:

library Project2;
{$R TVOI_RESURSY.RES}
begin
end.


Adder   (2002-05-06 09:31:00) [7]

пойди в обход - скомпилируй DLL с одними только ресурсами... и из нее подгружай ресурсы. Мне кажется, так будет проще.
Например, в Project2.Dll находятся твои ресурсы. И среди них есть Bitmap с именем ASK (ну, как пример из жизни)

var
HInst:THandle;
....
HInst:=SafeLoadLibrary("Project2.dll");
if HInst<= HINSTANCE_ERROR then .... действия при ошибке;
....

Image1.Picture.Bitmap.LoadFromResourceName(HInst,"ASK");

....

FreeLibrary(HInst);
CloseHandle(HInst);

см. TBitmap.LoadFromResourceName, TBitmap.LoadFromResourcID




Anatoly Podgoretsky   (2002-05-06 09:12:00) [8]

Второй вопрос также не имеет смысла
"Нужно подгрузить (в Runtime) в проект файл ресурсов" - это понятие не Runtime, а дизайн тайм


allrussia   (2002-05-06 08:35:00) [9]

Доброе утро.
На первый вопрос можете не отвечать.
Ответьте хотя бы на второй.

Итак,
КАК ДОСТАТЬ ИЗ ФАЙЛА РЕСУРСОВ (*.RES) КАРТИНКУ ИЛИ ТЕКСТ И ПОДГРУЗИТЬ В ПРОЕКТ В RUNTIME.

Для особо непонятливых (камень в огород SoftOne) - файл ресурсов находится отдельно от проекта.


allrussia   (2002-05-06 06:12:00) [10]

SoftOne>>>

Нужно подгрузить (в Runtime) в проект файл ресурсов, допустим картинку и отобразить ее на форме.

Причем, RES файл можно модифицировать, он не зависим от проекта.
Короче как dll.


SoftOne   (2002-05-06 04:45:00) [11]

Два "простых", но не понятных вопроса. А что собственно нужно?
"Достать ресурс из файла RES" - одно. Нужно знать формат данного файла.
"Подгрузить в проект" RES-файл - другое, причем очень простое. Не упоминаю как, поскольку, думаю, что не это нужно! А вот, что именно нужно - не понятно!


allrussia   (2002-05-06 04:09:00) [12]

Тогда кто-нибудь ответит на второй вопрос?


SoftOne   (2002-05-06 02:20:00) [13]

DLL просто не может работать "из ресурса".


allrussia   (2002-05-06 01:01:00) [14]

1.в DLL нет ресурсов, DLL - как программа, у нее свои функции, например, удаление файлов, перезагрузка компа и пр.., или чужая DLL, типа UNRAR.DLL, UNACE.DLL. Ведь картинку можно из ресурса грузить, значит и DLL как-то можно

2. Как насчет ответа на второй вопрос?


PGM   (2002-05-06 00:37:00) [15]


> когда DLL скомпилирована в ресурс проекта?

Это очень загадочно звучит и не очень ясно, что означает.
1. Или в DLL только ресурсы и тогда LoadResource работает без проблем после LoadLibrary.
2. Или она как бинарный ресурс запихана в ресурсы, то тогда только предварительное вытаскивание в отдельный файл и его загрузка штатным образом. Нельзя использовать DLL, которая не загружена.


Наверх

Титульная страница Поиск, карта сайта Написать письмо