I wlasnie tutaj mam pewna niescislosc otoz preprocesor:
[code]
#ifdef __cplusplus
extern "c" {
#endif
....
#ifdef __cplusplus
}
#endif
[/code]
To ma za zadanie powstrzymac C++ od dodawania dodatkowych krzaczkow do nazw funkcji
(dzieki czemu kod z dll moze byc uzyty w C i C++ - to ma zwiazek z lib-em i headerem do dll)
tylko za cholere nie znalazlem info jakie to sa dodatki - zwazywszy ze zarowno
C jak i C++ defaultowo uzywaja cdecl a jego krzaczki znam i jak to robi.
WIec wynika z tego ze jednak C++ korzysta niby z cdecl ale go dodatkowo rozszerza ?!
Czy nie chodzi tu o ten system z "?" na poczatku - jakis opis bylby mile widziany !?
Kolejna sprawa - fragment MSDNa :
After building this DLL, if you run DUMPBIN /EXPORTS utility on this DLL, you will see the following functions exported.
CMyFunc
CdeclFunc
MYFUNC
_MyFunc@12
ale przeciez do cholery w tablicy exportow kazdej dll MA NIE BYC ZADNYCH dodatkow,
to maja byc czyste nazwy funkcji by kazdy standard wywolania(a tym samym kompilator)
z nich skorzystal - to rowniez znalazlem w MSDNie !! Wiec do ... po malu sie gubie
jak sie okazuje nie wszytkie biblioteki maja czyste nazwy exportowanych funkcji ?!