OT: konecne poriadny piatkovy flame na temu "to C or not to C"Was:Vyctovy typ v C
Slavomir Skopalik
skopalik@elektlabs.cz
Pondělí Září 3 21:20:18 CEST 2007
Neda mi to, abych neprilil trochu horlaviny.
Tehle plati pro stare dobre DLL, kde opravdu
neni zadna informace o tom, co se ma volat.
Tohle ale jiz neplati v pripade COM objektu
(ulozenych prave v te dll) a uz vubec ne v pripade
.NET objektu (ulozenych take v dll).
Jinak polemizovat o DLL (tech starych dobrych)
je podle mne mimo misu,
jelikoz zde musi kazdy jazyk (volal jsem dll
funkce snad z 20 "jazyku") ziskat prototypy funkci
od programatora.
Pekne na tom je to, ze ten program nemusi znat
v dobe prekladu jake dll bude vlastne volat (tzv. plugin).
To proc se tato debata vede je absence techto informaci
v *.obj souborech a nutnost vytvaret tuto definici samostatne.
V pascalu lze tyto obj soubory take pouzivat, ale je nutne
stejne jako v c (ci jinych jazycich) jim vytvorit "header".
Ukazka:
{$L obj\deflate.obj}
function deflateEnd(var strm: TZStreamRec): Integer; external;
Zbytek jiz byl zminen, netreba opakovat.
Slavek
>
> DLL je "run-time" modul, ktory sa natahuje do pamatoveho
> priestoru programu pocas behu. A je jedno v akom prostredi je
> ten program (a aj
> DLL) napisany, staci mu vediet natiahnut si DLL, poznat mena
> funkcii a ich prototypy prave kvoli tomu, aby vedel, ake
> parametre im ma predavat a aky vystup ocakavat. Format zapisu
> prototypov je pritom logicky zavisly od pouziteho javyka. C
> ma *.h, VB ma *.vbh atd. Na toto som sa pytal, ako sa daju
> prototypy definovat pascalu? Z popisu kompletnych unitov mi
> to zrejme nie je.
Další informace o konferenci Hw-list