This function can only be called once. The global main() function provided by
the library normally does it automatically at program startup.
*/
-int Application::run(int argc, char **argv)
+int Application::run(int argc, char **argv, void *data)
{
static bool called=false;
if(called)
return 126;
}
+ data_=data;
+
try
{
try
Application *Application::app_=0;
Application::RegBase *Application::reg_app_=0;
+void *Application::data_=0;
} // namespace Msp
public:
virtual ~Application() { }
- static int run(int, char **);
+ static int run(int, char **, void * =0);
static void usage(const char *, const char *, bool);
+ static void *get_data() { return data_; }
protected:
enum LoopMode
{
static RegBase *reg_app_;
static Application *app_;
+ static void *data_;
static void sighandler_(int);
static void sigalrm_(int) { }
#include "application.h"
#ifdef WIN32
-int APIENTRY WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int /*nCmdShow*/)
+int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int /*nCmdShow*/)
{
int argc = 0;
LPWSTR *argv=CommandLineToArgvW(GetCommandLineW(), &argc);
- return Msp::Application::run(argc, (char **)argv);
+ return Msp::Application::run(argc, (char **)argv, hInstance);
}
#endif