OT: konecne poriadny piatkovy flame na temu "to C or not to C" Was:Vyctovy typ v C

Miroslav Sinko sinkomiro@rocketmail.com
Pondělí Září 3 20:59:33 CEST 2007


--- Jan Waclawek <wek@evona.sk> wrote:

> Miroslav Sinko wrote:
> > Ten binar je teda znovupouzitelny len v pacsalovskej aplikacii, ak
> > dobre rozumiem. 
> 
> Ale to Vam kto povedal? Akykolvek jazyk ho moze pouzit, ak sa mu 
> prisposobi. V tom binari je na to dostatok informacie.

No samozrejme, ale za aku cenu? Pokial viem, tpu je Turbo Pascal Unit,
teda format vyvinuty jednou implementaciou kompilatora (rodin
kompilatorov) a tento "binar" je nerelokovany polotovar pre build time.
Nieco ako static lib alebo obj v C, s tym, ze ma navyse tie prototypy v
sebe. Tu nemam problem uznat, ze je to chybam odolnejsie riesenie. 

To sa ale mozme bavit aj o vyuzivani statickych libiek a obj-ciek z MS
VC, BC++, atd... ktore vzajomne velmi kompatibilne nie su. Myslim
formatom. Aj tie moze pouzit akykolvek jazyk, ak sa im prisposobi...

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.


> > OK, interne to ma teda pascal poriesene. Ako ale na
> > moduly vytvorene v inych jazykoch? Typicky co ine, ako DLL-ky :-) 
> > 
> > Som si vedomy, ze DLL je Win - zavisle, len ma to zaujima z
> hladiska
> > tej konzistentnosti.
> 
> Mno, je hrozne tazke odpovedat na otazky na ktore zrejme sam viete
> Ak strukturu DLL navrhoval pako odchovany na C, niet sa comu cudovat.

> > C ma aj svoje platformovo nezavisle staticke libky, pouzitelne opat
> len
> > v C aplikaciach a tam plati to, co bolo povedane o *.h a *.obj.
> 
> Neviem co si predstavujete pod pojmom "platformovo nezavisle" u
> binarnej 
> kniznice, ale nevadi.

Brrr... zle som sa vyjadril. DLL je ukazka modulu cisto pre platformu
Win. Staticke lib sa pouzivaju pod vsetkymi platformami, samozrejme ze
nie tie iste fyzicke subory, ale ako typ "objektu".
 
> IMHO nie je zasadny problem v napisani prostriedku ktory "zlepi" *.h
> a 
> *.obj do niecoho prave pripominajuce *.tpu (problem je tam aj s
> volacimi 
> konvenciami, endiannostou a podobnymi blbinkami, takze take dokonale 
> kros-pouzitelne to nie je). U tych .dll, ak existuje vo formate popis
> toho ako tam tie informacie dostat, tak by sa podobny tool mal dat 
> spravit tiez; ten by potom robil z "prazdneho" .dll "uplny" .dll...

Z principu DLL to nie je nutne ani potrebne. Uz by to nebola dll
(DYNAMIC Linked Library)...
 
> Inak samozrejme existuje milion roznych inych objektovych formatov,
> ja 
> samozrejme chapem ze tak ako je dominantny OS Win, tak je dominantny 
> objekt dll a takisto je dominantnym jazykom C ci to chcem ci nechcem,
> proste sa to tak vyvinulo. Ale ako uz kolega Ales Prochazka napisal,
> da 
> sa s tym zmierit, len nech preboha nikto netvrdi, ze je to tak dobre
> (a 
> to najma nie zaciatocnikom).

Snad toto bolo myslene obecne a nie na mna, lebo nic take som netvrdil.

miro

PS: naozaj je to flame :-)


> wek
> 


      ____________________________________________________________________________________
Park yourself in front of a world of choices in alternative vehicles. Visit the Yahoo! Auto Green Center.
http://autos.yahoo.com/green_center/ 



Další informace o konferenci Hw-list