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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2011, 21:08   #1
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
Восклицание создание dll с ресурсами

Нужно создать dll с текстом, изображениями...

Как создать и использовать dll'ку с функциями, процедурами и т.д. вроде смог немного разобраться, а вот с ресурсами - непонятно...
Возникло несколько вопросов:

1) Как правильно написать файл.rc? Насколько я понял, в нём нужно писать имя и тип ресура и путь к файлу. Надо ли какими-нибудь символами отделять строки с разными ресурсами? Какие типы имеют, например, файлы .bmp, .txt, такие же как расширения? короче синтаксис файла.rc...

2) Ну допустим вопрос первый решится, тогда, после компиляции файла.rc с помощью Delphi7\BIN\BRCC32.EXE получится файл.res, вроде как... Вот, собственно, что дальше делать совсем не понятно.

Где-то в интернете нашёл такой код создание dll'ки:

Код:
Library Image; 
{$R resources.RES} 
Begin 
End.
А как потом обратиться к определённому ресурсу этой dll из программы?
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 24.02.2011, 21:29   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от RUSlan48 Посмотреть сообщение
1) Как правильно написать файл.rc? Насколько я понял, в нём нужно писать имя и тип ресура и путь к файлу. Надо ли какими-нибудь символами отделять строки с разными ресурсами? Какие типы имеют, например, файлы .bmp, .txt, такие же как расширения? короче синтаксис файла.rc...
Я тебе, конечно, ответ дам, только ты сам рад не будешь: полный синтаксис .rc-файлов.

Потому что в общем случае там дофига всего есть. Только вот 99% от этого тебе не надо.

Смотри тут список типов ресурсов.

Пример файла:

Код:
MYCURSOR CURSOR SHAPES.CUR
MYICON ICON SHAPES.ICO
MYMP3 RCDATA ..\Files\Nightquest.mp3
Цитата:
Сообщение от RUSlan48 Посмотреть сообщение
2) Ну допустим вопрос первый решится, тогда, после компиляции файла.rc с помощью Delphi7\BIN\BRCC32.EXE получится файл.res, вроде как... Вот, собственно, что дальше делать совсем не понятно.
Ээээ... подключить в проект?

Я тебе секрет открою - вовсе не обязательно руками вызывать компилятор ресурсов. Создал .rc файл, вписал в него определения, теперь идёшь в Delphi, Project/Add to project и выбираешь свой файл. Всё.

Delphi автоматом его скомпилирует и включит результат в проект.

Цитата:
Сообщение от RUSlan48 Посмотреть сообщение
А как потом обратиться к определённому ресурсу этой dll из программы?
Функции работы с ресурсами.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 24.02.2011, 21:45   #3
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
Хорошо

GunSmoker, спасибо огромное за полный ответ, буду разбираться...
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 27.02.2011, 21:20   #4
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

У меня возник ещё один вопрос: если у меня в этой dll'ке есть форма, где должны быть описаны все её события (всякие OnButton1Click...)?

вот код dll:
Код:
library dll;
uses
  SysUtils, Unit1 {Form1 в нём}, Classes, dialogs, forms, ActiveX;

{$R *.res}

procedure ShowMainForm(AppHandle: THandle); stdcall;
begin
  Application.Handle := AppHandle;
  CoInitialize(nil);
  Form1 := TForm1.Create(Application);
  Form1.Show
end;

exports  ShowMainForm;

begin
end.
Допустим моя прогграмма должна загружать форму из этой dll'ки, а сама dll'ка периодически обновляется, можно как-нибудь сделать так, чтобы в этом же Unit1 вместе с Form1 были все события Form1.On***

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

Последний раз редактировалось RUSlan48; 27.02.2011 в 22:29.
RUSlan48 вне форума Ответить с цитированием
Старый 01.03.2011, 16:30   #5
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
Вопрос

Ну так что, неужели никто не ответит?

Как органзовать взаимодействие между формами, находящимися в dll?
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 01.03.2011, 17:06   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Новый вопрос - новая тема.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание .dll Skif-F Общие вопросы .NET 4 10.08.2010 10:11
Создание DLL DjonyIII Общие вопросы Delphi 1 30.05.2010 18:54
Создание формы в dll HollyPaladin C++ Builder 1 30.12.2009 15:32
Создание DLL в Borland C++ 3.1 KuevProger Общие вопросы C/C++ 11 22.09.2009 08:45
Создание dll John_chek Общие вопросы Delphi 3 24.09.2007 14:26