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.