Designproblem Compiletime/Loadtime/Runtime
-
Hallo!
Ich habe ein Problem mit einer Library, in der es eine Lizenzklasse Lic gibt:
Lic.cpp:
Lic::Lic()
{
initSomeStuff();
}
Lic lic;...deren Konstruktor soll noch vor main() aufgerufen werden, der Mechanismus dazu ist die Initialisierung der globalen Variable lic. Das funktioniert auch, aber der Haken íst: Jeder Anwender wird sein eigenes License.h-File haben, in dem kundenspezifische Werte definiert sind, die Lic::Lic() verwenden soll.
Da Lic::Lic() aber mit der Library übersetzt wird, während License.h erst dem Compiler des Anwenders bekannt ist, sehe ich momentan keinen Mechanismus, um noch vor dem Start von main() Werte aus dem License.h an Lic::Lic zu übergeben.
Ideen?
-
Lass den Benutzer sein globales Lic Objekt doch einfach selbst definieren, da kann er den ganzen benutzerspezifischen Kram dann evtl. auch gleich dem Konstruktor übergeben...
-
Wie wäre es, wenn der User einfach eine Funktion der Library aufruft, der er entsprechende Werte übergibt?
(Edit: Oder so wie dot es vorschlägt)Vor der main also kann er per Header Werte festlegen, danach bindet er einen weiteren Header ein, der die Werte (deren Deklaration vorausgesetzt ist) an die Funktion übergibt...