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

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

Можно ли текстоввый файл запихнуть в DLL? [D5, Win2k, WinXP]


Страницы:   1 2

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 превратил - и работай.


Страницы:   1 2

Наверх

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