5 Stimmen

Windows-Nachrichtenschleife in eine DLL kapseln

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X