Vorschlag: Plugins?
-
Wie wäre es mit einem Tutorial um ein Plugin-System zu schreiben? Am besten sollte das ganze auf Windows und Linux dargestellt werden. Ich hab dazu leider keine Ahnung, aber vielleicht kann jemand anders dazu was sagen...
Wenn Interesse besteht...?
-
Ja, das ist ein interessantes und nicht ganz einfaches Thema, da wäre ein Artikel schon toll.
-
GPC schrieb:
Ja, das ist ein interessantes und nicht ganz einfaches Thema..
vor allem sehr umfangreich, weil's dafür die verschiedensten ansätze gibt.
in Java macht man's z.b. mit dem ClassLoader.
in nacktem C nimmt man eine struct mit function pointern.
unter win gehen irgendwelche tricks mit exports aus DLLs oder irgendwelche COM-objekte.
usw...
viel spass
-
Besteht denn die Chance auf so einen Artikel? Beziehungsweise habt ihr jemanden der es schreibt?
-
wasEineTolleIdee schrieb:
Besteht denn die Chance auf so einen Artikel? Beziehungsweise habt ihr jemanden der es schreibt?
Nein, haben wir nicht. Sollte sich jemand kompetentes melden, steht dem Artikel nichts im Weg.
-
Als ich mein Plugin-System (C++) geschrieben habe, habe ich zwar eine tolle API bauen können, aber keine Unterstützung für Windows.
pongbar_loop.cpp (Achtung, die Dateien auf dem Server sind nicht alle aktuell) ist ein Beispiel, wie man die API benutzen kann.
Ausschnitt:
plugin_handle<main_loop> loop( with_feature<timer_manager>() && with_feature<quit_manager>());
Hier wird ein Plugin geladen, das das Interface main_loop (gott::events::main_loop um genau zu sein) unterstützt, sowie die beiden Features timer_manager und quit_manager (auch beides in gott::events). Die nötigen Informationen werden etwa so in die Plugin-Datei (.cpp :p) gelegt:
GOTT_PLUGIN_MAKE_BUILDER_SIMPLE(plugin, gott::events::epoll_loop) GOTT_PLUGIN_METADATA( "plugin gott::events::epoll_loop\n" "interface gott::events::main_loop\n" "module-file ??FILE??\n" "symbol plugin\n" "priority high\n" "feature gott::events::fd_manager\n" "feature gott::events::timer_manager\n" "feature gott::events::inprocess_message_manager\n" "feature gott::events::signal_manager\n\n" )
Nur um mal zu zeigen, was ihr verpasst
-
wie schlecht...