![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли текстоввый файл запихнуть в DLL? [D5, Win2k, WinXP]
Zilog © (2005-01-14 11:24:00)сабж
raidan (2005-01-17 18:54:00) [1]>Zilog © (14.01.05 12:48) [22]
>а конфиги туда запихнуть хочу дабы файлов кучу не плодить... вот и всё собственно.
Использовать реестр для этих целей мешает вероисповедание?
Zilog (2005-01-14 13:08:00) [2]>> Это что, перекомпилировать (пересобирать) плагин каждый раз заново
да, так и будет, т.к. это какплагин, но неплагин
PVOzerski (2005-01-14 13:03:00) [3]>а конфиги туда запихнуть хочу дабы файлов кучу не плодить... вот и всё собственно.
Чего-то мне такой подход не нравится... Это что, перекомпилировать (пересобирать) плагин каждый раз заново? Или лезть его бинарник? Ну, теоретически это реализовать можно. Даже понятно, как. Строку с конфигурационными данными начинаем с уникальной сигнатуры. При команде на сохранение конфигурации плагин дергает из хост-приложения callback, передает ему новые значения, оно в ответ выгружает этот плагин, открывает его как двоичный файл, находит сигнатуру, пишет по нужному смещению эти значения, закрывает файл и загружает плагин обратно. Если хост этому научить нельзя (например, недоступны исходники), можно сделать дополнительный плагин-конфигуратор с callback'ом как отдельную dll. А вот стОит ли? Во всяком случае, антивирусным программам-ревизорам вроде ADInf такое не понравится.
Zilog (2005-01-14 12:48:00) [4]>>Digitman © (14.01.05 12:39) [21]
мне длл нужен как плагин.
а конфиги туда запихнуть хочу дабы файлов кучу не плодить... вот и всё собственно.
Digitman (2005-01-14 12:39:00) [5]
> Fay © (14.01.05 12:32) [20]
зачем спорить по сему смешному поводу ?
> Это уже от религии зависит
если ты сам и по доброй воле пришел в епархию мелкомягких, отрицать их религию попросту глупо)
а мелкомягкие на эту тему проповедуют следующее : создание ДЛЛ *(как отдельного функционально законченного прогр.модуля) имеет смысл в случаях потенциально возможного совместного одновременного использования этого модуля со стороны более чем одного процесса
Fay (2005-01-14 12:32:00) [6]2 Digitman © (14.01.05 12:28) [19]
Это уже от религии зависит. Зачем спорить зря?
Digitman (2005-01-14 12:28:00) [7]
> Zilog © (14.01.05 12:14) [15]
> потому как эта чать программы должна иметь возможность обновлятся
> по надобности
ну и обновляй непосредственно конф.файлы ! на кой шут их содержимое толкать в недра ДЛЛ ?
ДЛЛ-механизм предназначен совершенно для других целей
Fay (2005-01-14 12:21:00) [8]2 Zilog © (14.01.05 12:18) [17]
Читал [12]? Что не ясно?
Zilog (2005-01-14 12:18:00) [9]>>Fay © (14.01.05 12:15) [16]
ну если не считать того, что в длл я ничего пихать пока что не умею, и сейчас буду хелпы листать, то да :)
Fay (2005-01-14 12:15:00) [10]2 Zilog © (14.01.05 12:14) [15]
Проблема снята?
Zilog (2005-01-14 12:14:00) [11]>>kaZaNoVa © (14.01.05 12:01) [13]
нет, в загруженной длл они менятся уже не будут
>>Digitman © (14.01.05 12:02) [14]
потому как эта чать программы должна иметь возможность обновлятся по надобности, вот я и решил сделать dll.
Digitman (2005-01-14 12:02:00) [12]
> у меня надо хранить конфигурационные файлы
а нахрена их "запихивать" именно в ДЛЛ ? прокомментируй свою глубочайшую мысль ..
kaZaNoVa (2005-01-14 12:01:00) [13]Zilog © (14.01.05 11:54) [11]
> у меня надо хранить конфигурационные файлы, которые
> придется частенько менять
то есть ты хотишь менять их прямо в загруженной длл ?
Fay (2005-01-14 11:58:00) [14]Блин!
Создаёшь файл (типа FILE.RC) примерно следующего содержания
MY_FILE_1 RCDATA "MyFile1.txt"
MY_FILE_2 RCDATA "MyFile2.txt"
Добавляешь его к проекту
Читаешь справку о ресурсах
Zilog (2005-01-14 11:54:00) [15]неее... в моем случае это не подойдет... у меня надо хранить конфигурационные файлы, которые придется частенько менять... нужен способ поудобней
Fay (2005-01-14 11:52:00) [16]2 PVOzerski © (14.01.05 11:49) [6]
1) Спасибо
2) Это ужасно
3) А зачем редактор ресурсов ?!
Digitman (2005-01-14 11:52:00) [17]
> Можно ли текстоввый файл запихнуть в DLL
не только текстовый .. любой !
см.[1]
kaZaNoVa (2005-01-14 11:52:00) [18]PVOzerski © (14.01.05 11:49) [6]
я inc-файлом оформлял =))
> 2) Не выдрать ими же из бинарника (а если зашифровать
> - так и не найти);
имхо ОГРОМНОЕ преимущество=))))
kaZaNoVa (2005-01-14 11:51:00) [19]типа такого
const
Delta=36864;
DumpData : array[1..Delta] of Byte = (
77, 90, 80, 0, 2, 0, 0, 0, 4, 0, 15, 0, 255, 255, 0,
0, 184, 0, 0, 0, 0, 0, 0, 0, 64, 0, 26, 0, 0, 0 );
PVOzerski (2005-01-14 11:49:00) [20]>имхо лучший вариант =)
Да никакой он не лучший. Хотя достоинства есть. 1) Не надо пользоваться редакторами ресурсов при создании; 2) Не выдрать ими же из бинарника (а если зашифровать - так и не найти); 3) OS-независимо. Но и недостатков хватает: локализации не сделаешь, например.
А делается просто. Программка-генератор пишется на коленке за 10 минут и превращает текстовой файл вот в такое:
const
MyText:array[соответствующие числа]of char=(
'э','т','о',' ','т','е','к','с','т' - и т.д. Хоть inc-файлом оформляй, хоть через copy/paste. А потом адрес массива в pChar превратил - и работай.