> > Ikke nødvendigvis - funktionen erklæres statisk.
>
> Hvad forskel skulle det gøre? Der findes heller ikke statiske
> medlemsfunktioner i C.
ja sorry - det er mig som vrøvler
> Hvorfor bruger du så ikke bare C++ hvor de findes, i stedet for at
> forsøge en meningsløs extern "C"-erklæring? Dekorationer af navne i en
> so-fil fungerer fint.
Ja men programmet der skal bruge mit objekt kender ikke til mine klasser og
"algoritmen" for dekoreringen - den kalder henter bare en pointer til en
funktion med et bestemt navn og kalder den.
Jeg har ikke mulighed for at ændre denne adfærd.
> Hvad er det Visual C++ kan? Lave en medlemsfunktion som kan bruges
> direkte fra et C-program? Det er en umulighed for noget sådant findes
> ikke i C.
Den kan eksportere medlemsfunktioner, der er erklæret static, under et C
navn (dvs. uden dekorationer), hvilket gør det muligt uden videre at kalde
den fra C.
Selvfølgelig, når en funktion erklæres static, har man kun adgang til de
statiske ting i objektet - men man opnår et fint tilhørsforhold mellem
klassen og funktionen - og beskytter desuden attributterne på objektet.
Der findes åbenbart ikke sådan en funktionlitet i g++, så jeg tror jeg laver
nogle globale funktioner, som ikke gør andet end at kalde metoderne på
klassen.
Det er vist det bedste jeg kan opnå.