Главная страница
    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://delphimaster.net/view/11-1131453880/

http://delphimaster.net/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.52 MB
Время: 0.047 c
6-1146294518
Yegorchic
2006-04-29 11:08
2006.09.24
Проверка на наличие компьютера в сети


15-1157352131
ZeroDivide
2006-09-04 10:42
2006.09.24
Халява непрерывно расширяется


15-1157180964
Slym
2006-09-02 11:09
2006.09.24
За что удалили ветку про "За что удалили ветку про "Я, тут, стих"


2-1157620454
Павлуха
2006-09-07 13:14
2006.09.24
не могу разобраться


15-1157317488
ramzes2
2006-09-04 01:04
2006.09.24
как назначить родителя диалогу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский