wxApp mit BlockGuard?
-
Hey Leute,
ich frage mich ob es Sinn macht einen BlockGuard um die abgeleitete wxApp Klasse zu setzen. Eigentlich inkludiert man den Header nicht, oder liege ich da falsch? Gibt es Fälle in denen man den Header der abgeleiteten wxApp Klasse inkludiert?
App.h
#ifndef __App__ #define __App__ #ifdef WX_PRECOMP #include "wx_pch.h" #endif #ifdef __BORLANDC__ #pragma hdrstop #endif #include <wx/wx.h> #include "MainFrame.h" class App : public wxApp { public: MainFrame* MainFrame1; public: virtual bool OnInit(); }; DECLARE_APP(App); #endif
App.cpp
#include "App.h" bool App::OnInit() { MainFrame1 = new MainFrame(0L); MainFrame1->SetIcon(wxICON(MainIcon)); MainFrame1->Show(); return true; } IMPLEMENT_APP(App);
Der Aufbau ist doch soweit korrekt, oder?`
Mit freundlichen Grüßen,
DarkBug
-
Was meinst du mit Blockguard? Den include guard? Den brauchst du immer.
-
Genau den IncludeGuard meine ich. Aber was für ein Sinn macht es die App.h zu inkludieren?
-
Woher soll die App.cpp sonst die Definition der Klasse App kennen?
-
Nein xD. Ich meine in andere Übersetzungseinheiten als die App.cpp.
-
Ja, da man manchmal auch das Macro DECLARE_APP einsetzen muss.
-
Ich habe das Macro DECLARE_APP bisher noch nicht so ganz verstanden. Muss ich das Macro einmalig im Header, wo ich die abgeleitete wxApp Klasse deklariere verwenden um wxGetApp richtig verwenden zu können oder muss ich DECLARE_APP in jeder Datei verwenden, wo ich wxGetApp benutzen möchte? Sehe ich es dann richtig, das man DECLARE_APP in einer Datei erst aufrufen kann, wenn man den Header der abgeleiteten wxApp Klasse in diese inkludiert hat?
P.S.: Warum nicht einfach den globalen Pointer wxTheApp verwenden?
-
*push*