Huhu,
in meinem aktuellen Projekt benutze ich 2 Typen von Plugins. Beide sind ähnlich aufgebaut, werden fast auf gleiche Weise initialisiert/runtergefahren. Aus diesem Grund möchte ich den Code fürs initialisieren/shutdown nicht doppelt im Binary haben, sondern eine Funktion für beide Plugins nutzen.
Der Header der Plugins sieht so aus:
Wird folgendes auf jeder Plattform mit einem Standard C Compiler funktionieren?Code:typedef struct { void *handle; void (*shutdown)(); .... } Foo;
d.h. kann ich mich drauf verlassen, dass bei beiden Strukturen der Shutdown-Pointer an der gleichen Adresse liegt? Zumindest mit gcc3 unter x86 funktionierts, aber es sollte auch unter anderen UNIX Systemen laufen.Code:PluginA *a = plugin_a_new(); PluginB *b = a; b->shutdown();
Falls es so nicht klappt, gibts einen Workaround?
Danke.
Lesezeichen