Ich würde gerne eine DLL mit Fenstererstellungs- und -verwaltungscode so haben, dass der Entwickler einfach einen benannten main.h-Header hinzufügen und die DLL laden kann, um ein Fenster instanziieren zu können.
#include "dllheader.h"
void user_main();
main = user_main; // attach user main to the dll callback
int user_main() {
Window *w = new Window();
}
Auf der DLL-Seite sollte der Code wie folgt aussehen
void (*main)() = NULL;
int WinMain(...) {
if(main)
main(); // call the user defined funcion
while(!done) {
if(messageWaiting()) {
processMessage();
}
}
}
Warum? weil ich einen Fenster-Wrapper bereitstellen und vermeiden möchte, dass der Benutzer den WinMain-Einstiegspunkt schreibt. Aber ein DLL-Projekt haben eine DLL-Haupt- und ein Win32-Projekt, das eine DLL-Complaim verwendet, wenn Linker doesnt einen WinMain-Einstiegspunkt finden.
Gibt es eine bekannte Lösung für diese Art von Arrangement?