Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Можно ли текстоввый файл запихнуть в DLL?   Найти похожие ветки 

 
Zilog ©   (2005-01-14 11:24) [0]

сабж


 
Fay ©   (2005-01-14 11:25) [1]

Да. В ресурсы.


 
PVOzerski ©   (2005-01-14 11:27) [2]

И даже в константный массив.


 
Fay ©   (2005-01-14 11:32) [3]

2 PVOzerski ©   (14.01.05 11:27) [2]
Можно подробнее?


 
kaZaNoVa ©   (2005-01-14 11:41) [4]

PVOzerski ©   (14.01.05 11:27) [2]
имхо лучший вариант =)


 
Zilog ©   (2005-01-14 11:46) [5]

>>Fay ©   (14.01.05 11:32) [3]
>>2 PVOzerski ©   (14.01.05 11:27) [2]
>>Можно подробнее?

да, присоединяюсь... поподробнее можно?


 
PVOzerski ©   (2005-01-14 11:49) [6]

>имхо лучший вариант =)
Да никакой он не лучший. Хотя достоинства есть. 1) Не надо пользоваться редакторами ресурсов при создании; 2) Не выдрать ими же из бинарника (а если зашифровать - так и не найти); 3) OS-независимо. Но и недостатков хватает: локализации не сделаешь, например.
А делается просто. Программка-генератор пишется на коленке за 10 минут и превращает текстовой файл вот в такое:
const
MyText:array[соответствующие числа]of char=(
 "э","т","о"," ","т","е","к","с","т" - и т.д. Хоть inc-файлом оформляй, хоть через copy/paste. А потом адрес массива в pChar превратил - и работай.


 
kaZaNoVa ©   (2005-01-14 11:51) [7]

типа такого
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 );


 
kaZaNoVa ©   (2005-01-14 11:52) [8]

PVOzerski ©   (14.01.05 11:49) [6]
я  inc-файлом оформлял  =))


> 2) Не выдрать ими же из бинарника (а если зашифровать
> - так и не найти);

имхо ОГРОМНОЕ преимущество=))))


 
Digitman ©   (2005-01-14 11:52) [9]


> Можно ли текстоввый файл запихнуть в DLL


не только текстовый .. любой !
см.[1]


 
Fay ©   (2005-01-14 11:52) [10]

2 PVOzerski ©   (14.01.05 11:49) [6]
1) Спасибо
2) Это ужасно
3) А зачем редактор ресурсов ?!


 
Zilog ©   (2005-01-14 11:54) [11]

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


 
Fay ©   (2005-01-14 11:58) [12]

Блин!
Создаёшь файл (типа FILE.RC) примерно следующего содержания

MY_FILE_1 RCDATA "MyFile1.txt"
MY_FILE_2 RCDATA "MyFile2.txt"

Добавляешь его к проекту

Читаешь справку о ресурсах


 
kaZaNoVa ©   (2005-01-14 12:01) [13]

Zilog ©   (14.01.05 11:54) [11]

> у меня надо хранить конфигурационные файлы, которые
> придется частенько менять

то есть ты хотишь менять их прямо в загруженной длл ?


 
Digitman ©   (2005-01-14 12:02) [14]


> у меня надо хранить конфигурационные файлы


а нахрена их "запихивать" именно в ДЛЛ ? прокомментируй свою глубочайшую мысль ..


 
Zilog ©   (2005-01-14 12:14) [15]

>>kaZaNoVa ©   (14.01.05 12:01) [13]
нет, в загруженной длл они менятся уже не будут

>>Digitman ©   (14.01.05 12:02) [14]
потому как эта чать программы должна иметь возможность обновлятся по надобности, вот я и решил сделать dll.


 
Fay ©   (2005-01-14 12:15) [16]

2 Zilog ©   (14.01.05 12:14) [15]
Проблема снята?


 
Zilog ©   (2005-01-14 12:18) [17]

>>Fay ©   (14.01.05 12:15) [16]

ну если не считать того, что в длл я ничего пихать пока что не умею, и сейчас буду хелпы листать, то да :)


 
Fay ©   (2005-01-14 12:21) [18]

2 Zilog ©   (14.01.05 12:18) [17]
Читал [12]? Что не ясно?


 
Digitman ©   (2005-01-14 12:28) [19]


> Zilog ©   (14.01.05 12:14) [15]


> потому как эта чать программы должна иметь возможность обновлятся
> по надобности


ну и обновляй непосредственно конф.файлы ! на кой шут их содержимое толкать в недра ДЛЛ ?

ДЛЛ-механизм предназначен совершенно для других целей


 
Fay ©   (2005-01-14 12:32) [20]

2 Digitman ©   (14.01.05 12:28) [19]
Это уже от религии зависит. Зачем спорить зря?


 
Digitman ©   (2005-01-14 12:39) [21]


> Fay ©   (14.01.05 12:32) [20]


зачем спорить по сему смешному поводу ?


> Это уже от религии зависит


если ты сам и по доброй воле пришел в епархию мелкомягких, отрицать их религию попросту глупо)

а мелкомягкие на эту тему проповедуют следующее : создание ДЛЛ *(как отдельного функционально законченного прогр.модуля) имеет смысл в случаях потенциально возможного совместного одновременного использования этого модуля со стороны более чем одного процесса


 
Zilog ©   (2005-01-14 12:48) [22]

>>Digitman ©   (14.01.05 12:39) [21]

мне длл нужен как плагин.

а конфиги туда запихнуть хочу дабы файлов кучу не плодить... вот и всё собственно.


 
PVOzerski ©   (2005-01-14 13:03) [23]

>а конфиги туда запихнуть хочу дабы файлов кучу не плодить... вот и всё собственно.
Чего-то мне такой подход не нравится... Это что, перекомпилировать (пересобирать) плагин каждый раз заново? Или лезть его бинарник? Ну, теоретически это реализовать можно. Даже понятно, как. Строку с конфигурационными данными начинаем с уникальной сигнатуры. При команде на сохранение конфигурации плагин дергает из хост-приложения callback, передает ему новые значения, оно в ответ выгружает этот плагин, открывает его как двоичный файл, находит сигнатуру, пишет по нужному смещению эти значения, закрывает файл и загружает плагин обратно. Если хост этому научить нельзя (например, недоступны исходники), можно сделать дополнительный плагин-конфигуратор с callback"ом как отдельную dll. А вот стОит ли? Во всяком случае, антивирусным программам-ревизорам вроде ADInf такое не понравится.


 
Zilog ©   (2005-01-14 13:08) [24]

>> Это что, перекомпилировать (пересобирать) плагин каждый раз заново

да, так и будет, т.к. это как плагин, но не плагин


 
raidan ©   (2005-01-17 18:54) [25]

>Zilog ©   (14.01.05 12:48) [22]
>а конфиги туда запихнуть хочу дабы файлов кучу не плодить... вот и всё собственно.

Использовать реестр для этих целей мешает вероисповедание?



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.038 c
1-1105639172
Fin
2005-01-13 20:59
2005.01.30
Showmessage???


3-1104134072
juice
2004-12-27 10:54
2005.01.30
MySQL


14-1105249300
Чеширский_Кот
2005-01-09 08:41
2005.01.30
Perl to Pascal


1-1106134081
Putnik
2005-01-19 14:28
2005.01.30
Распределение случайных чисел


3-1104145677
denis24
2004-12-27 14:07
2005.01.30
select * wheredate_priem=# +FormatDateTime( dd/mm/yyyy ,now)+ #