SDL verfügt über eine WinMain-Implementierung und deklariert die SDL_main-Funktion. Der Benutzer kann den Hauptteil dieser Funktion und den Einstiegspunkt in SDL-Bibliotheksaufrufen definieren, die funktionieren.So erstellen Sie eine Bibliothek in C++, die den Haupteintrittspunkt enthält, z. B. SDL
Ich möchte eine Bibliothek mit der gleichen Implementierung implementieren. Also wie baue ich eine Bibliothek in C++, die den Einstiegspunkt enthält und dem Benutzer einen Prototyp einer Funktion zu geben, nachdem definiert und wie SDL aufgerufen wird.
Lib.hpp:
#define Main lib_main
extern int lib_main();
Lib.cpp:
konnte Eine mögliche Implementierung sein
#include "lib.hpp"
int main(){
// the lib code runs here
lib_main();
}
nach dem Bauprozess der diese Bibliothek ich wie so verwenden können:
main.cpp
#include "lib.hpp"
int Main(){
// The user code
}
ich Lib.cpp mit diesem Befehl nicht kompilieren können:
g ++ -shared lib.cpp -o lib.dll -Wl, - out-implib, libLib.a
es bekommen mir eine undefinierte Referenz für die lib_main().
Ich benutze Windows.
'int Haupt() {...}' wird erweitert als 'int lib_main();() {...}' ... möchte vielleicht Ihre '# define' in Lib.hpp aktualisieren – AJNeufeld
Aktualisiert. Danke –
Es ist möglich, mit Build-Flags [den Einstiegspunkt eines Programms zu ändern] (http: // stackoverflow.com/questions/7494244/how-to-ändern-entry-point-of-c-programm-mit-gcc) aber anders als das Sie Ihre eigene Frage beantwortet haben. – Matt