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

Вниз

DLL без SysInit.pas и System.pas   Найти похожие ветки 

 
ph0sgen ©   (2006-08-11 19:52) [0]

Здравствуйте, уважаемые мастера.

Пытаюсь написать DLL отказавшись от стандартных
модулей SysInit.pas и System.pas.

Какое минимальное содержание должны иметь эти модули
для коррекной работы?

если кто сталкивался, прошу откликнуться.

заранее благодарен.


 
Мефисто   (2006-08-11 19:58) [1]

Что твое приложение требует, то и вставляй из соотвествующих юнитов. Телепатов нет. Откуда нам знать, что тебе понадобится из данных юнитов для его работы.

P.S. А если задуматься, шкурка выделки стоит?


 
ph0sgen ©   (2006-08-11 20:08) [2]

мне нужно минимальное содержание, лишь бы компилятир не орал.
а дальше справлюсь


 
apic ©   (2006-08-12 17:18) [3]

Да уж куда меньше!!! Попробуй на ASM


 
Ketmar ©   (2006-08-12 19:50) [4]

> [0] ph0sgen ©   (11.08.06 19:52)
берёшь и усекаешь. до момента, пока не перестанет работать.


 
Stexen   (2006-08-12 22:54) [5]

хм, наверняка нужны только описание апи функций, соответсвенно описываешь у себя и все, а вообще возми aspack и не мучайся...


 
Ketmar ©   (2006-08-12 22:59) [6]

> [5] Stexen   (12.08.06 22:54)
а вот и не угадал. ещё много чего нужно. а что конкретно -- зависит от задачи. потому и говорю -- усекать, пока не упадёт. лично делал именно так. %-)


 
ANTPro ©   (2006-08-12 23:49) [7]

Ketmar ©   (12.08.06 22:59) [6]
лично делал именно так

Можешь кинуть куда-нибуть поглядеть, че-то не получается :(


 
Ketmar ©   (2006-08-12 23:55) [8]

> [7] ANTPro ©   (12.08.06 23:49)
не могу -- Заратустра запрещает. %-) остались только .dcu, и те заточены под конкретную программку.


 
ANTPro ©   (2006-08-13 00:20) [9]

Придется ковырять самому :(
пока минимум 5120 б


 
ANTPro ©   (2006-08-13 02:02) [10]

http://predskazanie-wunschpunsch.ru/view/11-1131453880/

http://predskazanie-wunschpunsch.ru/view/11-1131453880/


 
jack128 ©   (2006-08-13 17:55) [11]

а можно узнать, зачем всё это??пары килобайт на винте жалко?


 
XProger ©   (2006-08-13 19:33) [12]

jack128, а зачем занимать эту пару килобайт на диске? Зачем добавлять в моё приложение код работы со строками, динамическими массивами, менеджера памяти, RTL и прочих не нужных мне (в данном проекте) функций?
Спортивный интерес имхо :)

ph0sgen,
SysInit.pas
unit SysInit;

interface

procedure _InitExe;
procedure _halt0;
procedure _InitLib(Context: PInitContext);

var
 ModuleIsLib : Boolean;
 TlsIndex    : integer = -1;
 TlsLast     : Byte;

const
 PtrToNil: pointer = nil;

implementation

procedure _InitLib(Context: PInitContext);
asm
LEAVE
RET 12
end;

procedure _InitExe;
asm
end;

procedure _halt0;
asm
end;

end.

System.pas
unit System;

interface

procedure _HandleFinally;

type
 TGUID = record
   D1: LongWord;
   D2: Word;
   D3: Word;
   D4: array [0..7] of Byte;
 end;

 PInitContext = ^TInitContext;
 TInitContext = record
   OuterContext   : PInitContext;
   ExcFrame       : pointer;
   InitTable      : pointer;
   InitCount      : integer;
   Module         : pointer;
   DLLSaveEBP     : pointer;
   DLLSaveEBX     : pointer;
   DLLSaveESI     : pointer;
   DLLSaveEDI     : pointer;
   ExitProcessTLS : procedure;
   DLLInitState   : Byte;
 end;

implementation

procedure _HandleFinally;
asm
end;

end.

dll.dpr
library dll;

begin
 // blablabla
end.

make.bat
dcc32 dll.dpr -m -y
dcc32 dll.dpr


Проверено на компиляцию в dcc32.exe 18 версии (Delphi 10)


 
Ketmar ©   (2006-08-13 19:43) [13]

> [12] XProger ©   (13.08.06 19:33)
не всё так просто. для пустой dll -- да. а если там код, то такими "заглушками" не всегда обойтись можно.

совсем оффтоп: а вот если это это
Function AddNumbers ( Byval operand1 As Integer, _
 Byval operand2 As Integer ) As Integer export

 Return operand1+operand2
End Function

собрать FreeBASIC"ом, получится DLL на 5 кил. и никаких танцев с бубнами. все на FreeBASIC! (кстати, удобная штука %-).


 
Чапаев ©   (2006-08-13 19:53) [14]

> [12] XProger ©   (13.08.06 19:33)

Только как скомпилить System и SysInit? dcc32 говорит, что невозможно использовать зарезервированное имя.


 
ANTPro ©   (2006-08-13 20:28) [15]

2Чапаев
dcc32.exe -Q system.pas sysinit.pas -M -Y -Z -$D- -O

2XProger
У тебя есть более функциональные модули?


 
XProger ©   (2006-08-13 20:34) [16]

Ketmar,
function AddNumbers(operand1, operand2: Integer): Integer;
begin
 Result := operand1 + operand2
end;

exports
 AddNumbers;

4.5 кб в Delphi, учитывая, что содержит выравнивание и RCData, которые зачастую не нужны.
Кинуть 2 модуля в файл с проектом это на Ваш взгляд - "танцы с бубном"? ;)
Но заглушки действительно не "на все случаи жизни"...

Чапаев, компилятор Delphi 10 всё успешно компилирует при запуске make.bat, при условии что dcc32.exe лежит "рядом" с файлом проекта.


 
XProger ©   (2006-08-13 20:35) [17]

ANTPro, в KOL имеются :)


 
ANTPro ©   (2006-08-13 20:37) [18]

XProger ©   (13.08.06 20:35) [17]
А более урезанные?


 
Digitman ©   (2006-08-13 20:39) [19]


> ph0sgen ©   (11.08.06 20:08) [2]
>
> мне нужно минимальное содержание, лишь бы компилятир не
> орал


Ты еще минимальный System у Борланда потребуй.
Совсем лафа будет)


 
XProger ©   (2006-08-13 20:40) [20]

К сожалению, других не встречал и не писал.
А что именно нужно?


 
ANTPro ©   (2006-08-13 20:46) [21]

Вообщем без хлама всякого (String,Write,Read ...)

ЗЫ: Можешь поделиться компилятором от Delphi10


 
XProger ©   (2006-08-13 20:59) [22]

Ну дык, код представленный выше тоже не содержит этих функций и возможностей :) sin, cos, tan, trunc, round, random, randomize - можно без забот перетащить из стандартных модулей. Так что ещё нужно? :)


 
ANTPro ©   (2006-08-13 21:02) [23]

ДА но мне нужно все остальное!


 
Чапаев ©   (2006-08-13 21:24) [24]

Фигня полная... Пытаюсь HelloWorld вывести через WriteConsole(), без всяких VCL -- и то ругается: PLongInt ему не такой. И свою гадость в ресурсы даже в пустой проект всё же вписывает...


 
XProger ©   (2006-08-13 22:32) [25]

Чапаев, RCData - единственное что вписывает в ресурсы (удаляется без проблем сторонними утилитами)
PLongInt может не объявил?
Ничего не знаю по поводу консоли, но вот что вышло у меня:
http://xproger.mirgames.ru/files/bin/X4k.rar
http://xproger.mirgames.ru/files/tmp/xscene.rar (работаю над ней)


 
Чапаев ©   (2006-08-13 23:01) [26]

> (удаляется без проблем сторонними утилитами)

удаляется, да результат потом не работает...


 
ANTPro ©   (2006-08-13 23:27) [27]

Чапаев ©   (13.08.06 23:01) [26]
удаляется,

Интересно чем ?


 
XProger ©   (2006-08-13 23:42) [28]

Правка к [25]: http://xproger.mirgames.ru/tmp/xscene.rar

Чапаев, Restorator отлично справляется с этой задачей.


 
Ketmar ©   (2006-08-14 00:43) [29]

> [16] XProger ©   (13.08.06 20:34)
это у меня юмор такой.


 
Чапаев ©   (2006-08-14 10:06) [30]


> Интересно чем ?

Фаром в основном. Ещё программка, не помню название. Ресурс-чего-то там. Там целая группа программ, из которых разве что РесурсБилдер помню...


 
ANTPro ©   (2006-08-14 12:09) [31]

Restorator возьми и не парься :)


 
Ketmar ©   (2006-08-15 09:59) [32]

> [31] ANTPro ©   (14.08.06 12:09)
с каких это пор использование платных программ стало "непареньем"?


 
Чапаев ©   (2006-08-15 10:06) [33]

> с каких это пор использование платных программ стало "непареньем"?

На Руси-матушке -- от сотворения мира. ;-)


 
Ketmar ©   (2006-08-15 10:09) [34]

> [33] Чапаев ©   (15.08.06 10:06)
так вот я намекаю, что всегда с этим были проблемы. пока нароешь лекарство, пока убедишься, что это лекарство, а не отрава... вот намедни аж обыскался -- нет лечилки для... для... не скажу, для чего. %-)


 
Чапаев ©   (2006-08-15 10:10) [35]

так у мя на диске и ресторатор с касторкой есть. просто как-то не знал, что он чем-то лучше.



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

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

Наверх




Память: 0.55 MB
Время: 0.032 c
15-1157430752
Pazitron_Brain
2006-09-05 08:32
2006.09.24
E-mail - SMS


2-1157266289
Mozgan
2006-09-03 10:51
2006.09.24
Числа


2-1157540645
Иванов
2006-09-06 15:04
2006.09.24
Подсчет по категориям


1-1155564328
GanibalLector
2006-08-14 18:05
2006.09.24
Необязательный параметр в библиотеке типов.


1-1155712716
Sniper
2006-08-16 11:18
2006.09.24
Изменяющиеся свойства подкласса