#endif // wxUSE_GUI
#include "wx/build.h"
-#include "wx/init.h"
class WXDLLEXPORT wxApp;
class WXDLLEXPORT wxAppTraits;
// be in your main program (e.g. hello.cpp). Now IMPLEMENT_APP should add this
// code if required.
-#if !wxUSE_GUI || defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMGL__) || defined(__WXCOCOA__)
- #define IMPLEMENT_WXWIN_MAIN \
- extern int wxEntry( int argc, char **argv ); \
- int main(int argc, char **argv) { return wxEntry(argc, argv); }
-#elif defined(__WXMAC__)
- // wxMac seems to have a specific wxEntry prototype
- #define IMPLEMENT_WXWIN_MAIN \
- extern int wxEntry( int argc, char **argv, bool enterLoop = TRUE ); \
+#if !wxUSE_GUI || !defined(__WXMSW__)
+ #define IMPLEMENT_WXWIN_MAIN \
+ extern int wxEntry( int& argc, char **argv ); \
int main(int argc, char **argv) { return wxEntry(argc, argv); }
#elif defined(__WXMSW__) && defined(WXUSINGDLL)
#define IMPLEMENT_WXWIN_MAIN \
DECLARE_EVENT_TABLE()
};
-int WXDLLEXPORT wxEntry( int argc, char *argv[] );
-
#endif // __GTKAPPH__
DECLARE_EVENT_TABLE()
};
-int WXDLLEXPORT wxEntry( int argc, char *argv[] );
-
#endif // __GTKAPPH__
#include "wx/thread.h"
#endif
+#include "wx/init.h"
+
#include "wx/ptr_scpd.h"
#include "wx/module.h"
extern unsigned long wxGlobalSEHandler();
-int wxEntry(int argc, wxChar **argv)
+int wxEntry(int& argc, wxChar **argv)
{
__try
{
#if wxUSE_UNICODE
// as with wxEntryStart, we provide an ANSI wrapper
-int wxEntry(int argc, char **argv)
+int wxEntry(int& argc, char **argv)
{
ConvertArgsToUnicode(argc, argv);
gtk_main_iteration();
}
-bool wxApp::Initialize(int argc, wxChar **argv)
+bool wxApp::Initialize(int& argc, wxChar **argv)
{
- if ( !wxAppBase::Initialize(argc, argv) )
- return false;
-
#if wxUSE_THREADS
// GTK 1.2 up to version 1.2.3 has broken threads
if ((gtk_major_version == 1) &&
// we can not enter threads before gtk_init is done
gdk_threads_enter();
+ if ( !wxAppBase::Initialize(argc, argv) )
+ {
+ gdk_threads_leave();
+
+ return false;
+ }
+
wxSetDetectableAutoRepeat( TRUE );
#if wxUSE_INTL
void wxApp::CleanUp()
{
- wxAppBase::CleanUp();
-
gdk_threads_leave();
+
+ wxAppBase::CleanUp();
}
#ifdef __WXDEBUG__
gtk_main_iteration();
}
-bool wxApp::Initialize(int argc, wxChar **argv)
+bool wxApp::Initialize(int& argc, wxChar **argv)
{
- if ( !wxAppBase::Initialize(argc, argv) )
- return false;
-
#if wxUSE_THREADS
// GTK 1.2 up to version 1.2.3 has broken threads
if ((gtk_major_version == 1) &&
// we can not enter threads before gtk_init is done
gdk_threads_enter();
+ if ( !wxAppBase::Initialize(argc, argv) )
+ {
+ gdk_threads_leave();
+
+ return false;
+ }
+
wxSetDetectableAutoRepeat( TRUE );
#if wxUSE_INTL
void wxApp::CleanUp()
{
- wxAppBase::CleanUp();
-
gdk_threads_leave();
+
+ wxAppBase::CleanUp();
}
#ifdef __WXDEBUG__