Tema: Re: VC++ 2010
Autorius: viska_dare_vienas
Data: 2012-05-18 14:25:42
 

siaip, ko cia buriam 

grynas.melas@gmail.com

parasykite su kokiais kompiliatoriais ir ju versijomis kurti ivairus *.dll; analogiskai aprasykite su kokais naudoti importui

bandysiu pavyzdziu pagaminti - man paciam jau idomu; VS 2010 po ranka pasipainiojo



o dar geriau koki *.dll ir *.h atsiuskite su aprasymu kokiu nepavojingu funkciju kvietimu



> taip, aciu, kai istryniau pagaminta lib, gavau runtime errora. Reiskia 
> linkeris linkuoja, bet kompileris kazka buria su extern "C" kad neranda 
> reikiamu vardu. Gal tai susije su man nezinomais managed/nonmanaged dll 
> niunansais. Beabejo mano dll joks ne managed, o pats vulgariausias dll.

statinis *.dll linkavimas:
reikalingas *.lib failas; kitaip gautumete linkinimo klaidu; jei skundziasi kompiliatorius - kazkas ne taip su *.h (gal extern "C" { stdcall } pamirsote); jei prilinkino ji istrynus - kazkur ant kelio (greiciausia) ide metosi papildomas bet netinkantis einamai kompiliatoriaus versijai analogiskas *.lib; siaip man idomu kaip cia gaunasi
?funkcija@@$$J18YGHHH@Z

Borland C++ versijos 5 sakoma:
@[classname@]EncodedFuncName$qEncodedArgType

cia mat eta paeiliui du kartus neina; gal kompiliatoriai skirtingai eme zymetis funkciju vardus, ka anksciau dare vienodai (jei su senesnemis VS versijomis ejosi gerai)

del runtime klaidu - matau du variantus, kaip tai ne is tos puses kraunami stekan parametrai; kompiliatoriui uzstatytas managed rezimas (stdcall funkcijos pacios valo steka, o kai ta dar sumasto tas rezimas kontroliuoti - runtime klaida)

Aciu.