added wxBuildOptions and check that they are the same for the program and the library on startup

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-05-07 19:56:43 +00:00
parent c924182a96
commit 090a6d7af9
3 changed files with 118 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: app.h
// Name: wx/app.h
// Purpose: wxAppBase class and macros used for declaration of wxApp
// derived class in the user code
// Author: Julian Smart
@@ -51,6 +51,8 @@ class WXDLLEXPORT wxCmdLineParser;
#include "wx/icon.h"
#endif
#include "wx/build.h"
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
@@ -321,6 +323,11 @@ public:
virtual void OnAssert(const wxChar *file, int line, const wxChar *msg);
#endif // __WXDEBUG__
// check that the wxBuildOptions object (constructed in the application
// itself, usually the one from IMPLEMENT_APP() macro) matches the build
// options of the library and abort if it doesn't
static bool CheckBuildOptions(const wxBuildOptions& buildOptions);
// deprecated functions, please updae your code to not use them!
// -------------------------------------------------------------
@@ -539,9 +546,19 @@ public:
#define IMPLEMENT_WX_THEME_SUPPORT
#endif
// define the build options object for the application which is compared to the
// one used for building the library on the program startup
#define WX_DEFINE_BUILDOPTS() \
const wxBuildOptions& wxGetBuildOptions() \
{ \
static wxBuildOptions s_buildOptions; \
return s_buildOptions; \
}
// Use this macro if you want to define your own main() or WinMain() function
// and call wxEntry() from there.
#define IMPLEMENT_APP_NO_MAIN(appname) \
WX_DEFINE_BUILDOPTS() \
wxApp *wxCreateApp() { return new appname; } \
wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
appname& wxGetApp() { return *(appname *)wxTheApp; }