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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2013, 12:42   #1
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Вопрос Добавление ресурса в dll

Доброе время суток!
Помогите разобраться с добавлением ресурса в длл
Я пробую так:
PHP код:
procedure ExportDataRes(PathANameATypeStringdataTFileStream); overload;
var
hFileHWND;
Buf: array of Byte;
begin
hFile 
:= BeginUpdateResource(PChar(Path), False);
try
if 
hFile 0 then
begin
RaiseLastOSError
;
end;
SetLength(BufData.Size);
Data.Position := 0;
Data.Read(Buf[0], Data.Size);
if 
not UpdateResource(hFilePChar(AType), PChar(AName),
0, @Buf[0], Data.Sizethen RaiseLastOSError;
Finalize(Buf);
finally
EndUpdateResource(hFileFalse);
end;
end
Вызываю:
PHP код:
var
j:integer;
s:String;
Data :TFileStream ;
begin
s
:=Edit3.Text+Copy(Edit4.Text,1,1) +Copy(Edit5.Text,1,1);
for 
j:=1 to length(s) do
s[j]:=Translit(s[j])[1];
Memo1.Lines.SaveToFile('db\FormsOrders\'+s);
Data := TFileStream.Create('
db\FormsOrders\'+s, fmOpenRead);
ExportDataRes(extractfilepath(Application.ExeName)+'
db\FormsOrders\FormsOrders.dll','Order',Format('%.6d',[CheckListBox1.ItemIndex+1]), Data);
Data.Free;
DeleteFile(PChar('
db\FormsOrders\'+s)); 
Но ресурс не добавляется а заменяет существующий!
Пробовал искать но нечего не нашёл ((
Подскажите пожалуйста как это сделать.
Заранее благодарен!
С уважением,
Volkogriz!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 20.07.2013, 13:15   #2
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Ресурсы в DLL добавляются при создании ее(компиляции). Не проще ли добавить нужный ресурс на стадии создания?
Stertor вне форума Ответить с цитированием
Старый 20.07.2013, 13:19   #3
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Нет их ещё в природе не существует,
и появляются они когда нужно внести изменение в стандартный список.
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 20.07.2013, 13:22   #4
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Цитата:
Нет их ещё в природе не существует,
и появляются они когда нужно внести изменение в стандартный список.
Кого - "их" ?
Stertor вне форума Ответить с цитированием
Старый 20.07.2013, 13:29   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Ресурсов нет)
Кстати и неизвестно будет ли существовать и неизвестно с каким именем.
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Volkogriz; 20.07.2013 в 13:32.
Volkogriz вне форума Ответить с цитированием
Старый 20.07.2013, 13:32   #6
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

В таком случае, Вы выбрали неправильный путь. Нельзя просто так от балды добавлять/удалять ресурсы из библиотек, так же как и из exe. Это чревато ошибками и крайне нестабильной работой.
Stertor вне форума Ответить с цитированием
Старый 20.07.2013, 13:36   #7
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Ресурс в задуманной длл это просто кусок текста с индексам очереди в листбоксе и итеймс добавляется постоянно, предполагаю что ресурс с текстом не приведёт к ошибке.
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 20.07.2013, 13:38   #8
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Цитата:
Ресурс в задуманной длл это просто кусок текста с индексам очереди в листбоксе и итеймс добавляется постоянно, предполагаю что ресурс с текстом не приведёт к ошибке.
Volkogriz, смотрите на 2 поста выше.


Покажите Ваш код целиком? А то я уже всю бородку выщипал, силясь понять, что же Вы хотите сделать.

Последний раз редактировалось Stertor; 20.07.2013 в 13:45.
Stertor вне форума Ответить с цитированием
Старый 20.07.2013, 16:50   #9
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Цитата:
Сообщение от Stertor Посмотреть сообщение
В таком случае, Вы выбрали неправильный путь. Нельзя просто так от балды добавлять/удалять ресурсы из библиотек, так же как и из exe. Это чревато ошибками и крайне нестабильной работой.
Скажите это Smart Install Maker, smart setup wizard и любому другому установщику, еще можете сказать это upx.exe, и еще куче программ.
По теме, он и будет заменять, надо другое имя прописывать!

Последний раз редактировалось Кольша; 20.07.2013 в 16:53.
Кольша вне форума Ответить с цитированием
Старый 20.07.2013, 16:57   #10
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Цитата:
Скажите это Smart Install Maker, smart setup wizard и любому другому установщику, еще можете сказать это upx.exe, и еще куче программ.
По теме, он и будет заменять, надо другое имя прописывать!
Это одно дело. Ресурсы на то и ресурсы, что бы их редактировать.


НО

Я задам Вам один вопрос, после чего решу, стоит ли мне с Вами спорить: Вы считаете, что динамическое добавление/удаление ресурсов В DLL это нормально?
Stertor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? AntyDES C# (си шарп) 11 10.10.2012 20:00
Добавление DLL в импорт чужого exe файла средствами делфи Crystallon Общие вопросы Delphi 3 03.08.2011 11:48
Файл ресурса Gregor Общие вопросы Delphi 10 08.11.2010 13:13
Добавление DLL компоненита в программу ЖенёкСупер Общие вопросы Delphi 8 08.08.2010 20:20
Добавление нового ресурса в exe шник MVX Помощь студентам 19 06.08.2010 11:19