Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Easy to use PluginSystem

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 26.05.2013, 18:37    Titel: Easy to use PluginSystem Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 26.05.2013, 19:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 26.05.2013, 20:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz