Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.05.2013, 18:37 Titel: Easy to use PluginSystem |
|
|
Manchmal möchte man für seine Projekte dynamisch Plugins laden, das bedeutet aber oft viel Vorarbeit. In diesem kleinen Projekt habe ich ein PluginSystem erstellt, das recht einfach zu nutzen und zu erweitern ist.
PluginSystem
Schaut einfach mal rein, vielleicht hilft es dem ein oder anderen. |
|
Nach oben |
|
 |
Cherry
Anmeldungsdatum: 20.06.2007 Beiträge: 249
|
Verfasst am: 26.05.2013, 19:38 Titel: |
|
|
Vorschlag damit man das nicht an X Stellen ändern muss:
Statt das 0001 fix reinzuschreiben könnte man ein Makro verwenden:
Code: | // Version ohne Anführungszeichen
#Define CURRENTAPIVERSION_RAW 0001
// Hilfsmakro zum Hinzufügen der Anführungszeichen
#Define _STRINGIFY(_token_) #_token_
// Makro welches die Version mit Anführungszeichen liefert
#Define CURRENTAPIVERSION _STRINGIFY(CURRENTAPIVERSION_RAW)
// Makro welches zu einem Namen die Version als Suffix hinzufügt
#Define VERSUFFIX(_name_) _name_##CURRENTAPIVERSION_RAW
// Beispiel zur Verwendung von VERSUFFIX
Type ProgramAPI As VERSUFFIX(ProgramAPI) |
|
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.05.2013, 20:02 Titel: |
|
|
Könnte man tun, hat aber einen eher geringen Einfluss, weil das so gedacht ist, dass man für alle Vorversionen den Code mitschleppen kann und dann doch pro Version alles manuell schreibt. Du hättest dann später also sowas:
Code: | Dim Shared As ProgramAPI0001 programAPI0001
'...
Dim Shared As ProgramAPI0002 programAPI0002
'... |
Bei den Types das gleiche, für jede neue Version alles alte stehen lassen.
Es macht also eigentlich nur für die von dir erwähnte Stelle Sinn, nämlich da, wo die Aliase auf die neueste API Version gestellt werden. Mit den paar Codestellen ist das doch noch überschaubar und sollten bei neuen APIs sowieso geprüft werden.
Für den Pluginersteller hat es keine Vorteile, weil ihm das völlig egal sein kann, da er sich einfach immer nur auf die Version bezieht, die er aus dem Header bekommt. |
|
Nach oben |
|
 |
|