Текущий архив: 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.pasunit 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.pasunit 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.dprlibrary dll;
begin
// blablabla
end.
make.batdcc32 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