wxWidget - main
-
Hallo liebe Community
Ich muss mich für ein Projekt in wxWidgets einlesen uns bin dabei auf ein Problem gestoßen.
Ich habe aus dem Tutorial diesen Code versucht zu verstehen
Wo ich leider momentan total auf dem Schlauch stehe, ist nicht etwa nen Link-Error oder ähnliches, sondern in dem Beispiel (oder in anderen im Netz) finde ich einfach keine main...
Ich kenne, dass eig. von adneren GUI's, dass man iwie sowas wie run oder exec aufrufen muss, aber irgendiwe scheint das in wxWidget zu Trivial zu sein, sodass es nirgendwo erklärt wird...
Welche Funktion muss ich aufrufen, damit mein Fenster "rennt"
?
Danke und ja ihr dürft Lachen
mfG
-
Verfolge mal die Definition von IMPLEMENT_APP. Über dieses Makro erstellt wxWidgets nämlich den Einstiegspunkt deiner Anwendung und führt weitere Initialisierungen aus.
-
Danke für den Tipp, mein Code funktioniert jetzt, allerdings muss in der
MainwxEntry(argc,argv);
stehen, damit es klappt, ich versteh nicht, wozu, theoretisch müsste doch das Makro alles machen oder?
mfG
-
wxWidgetsNewbie schrieb:
Danke für den Tipp, mein Code funktioniert jetzt, allerdings muss in der
MainwxEntry(argc,argv);
stehen, damit es klappt, ich versteh nicht, wozu, theoretisch müsste doch das Makro alles machen oder?
mfG
Du brauchst keine main. IMPLEMENT_APP enthält die definition der main für die jeweilige Platform. Ohne den Code kann ich dir aber nicht sagen wo dein Fehler liegt. wxEntry muss nur benutzt werden wenn du deine eigene main hast.
-
Ah ok, jetzt gehts (Ohne main).
Danke
mfg
-
Sry, aber iwie funzt es doch nicht, beim Test vorhin (anderes Projekt) hatte es funktioniert, aber bei meinem eigentlichen Projekt geht es wieder nicht ohne main.
#include<wx\frame.h> #include<wx\app.h> class Anwendung: public wxApp { public: virtual bool OnInit() { wxFrame frame(NULL,-1,"TEST",wxPoint(-1,-1),wxSize(500,300)); frame.Show(); return true; } }; IMPLEMENT_APP(Anwendung);
Fehler ist folgender:
MSVCRTD.lib(crtexe.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".Subsystem:Windows ist eingestellt
sry
mfG
-
1.) Backslashes in includes sind nicht gut, vor allem wenn man xplatform libs wie wxWidgets benutzt. Gewöhn dir forward slashes an bitte.
2.) Du hast SetTopLevelWindow(frame); vergessen.
3.) Hast du die Präprozesser Einstellungen richtig vorgenommen? Click
4.) Der Frame muss auf dem Heap erstellt werden, nicht auf dem Stack.
5.) Ist das eine CPP Datei? Wenn nein, dann ist das das Problem. IMPLEMENT_APP muss in einer .cpp Datei stehen. In der .hpp Datei kannst du nur DECLARE_APP verwenden.
-
Punkt 3 wars
Danke, jetzt funktioniert alles
mfG und vielen vielen Dank