... but only if startup didn't happen through Application::run(). Certain
facilities, like Graphics::Display on Windows, require startup info to be
set and would not work without this in a custom startup scenario.
return 126;
}
- argv0_ = argv[0];
- data_ = data;
+ set_startup_info(argv[0], data);
try
{
}
}
+void Application::set_startup_info(const char *argv0, void *data)
+{
+ if(argv0_)
+ throw logic_error("startup info already set");
+
+ argv0_ = argv0;
+ data_ = data;
+}
+
int Application::main()
{
done = false;
by the library normally does it automatically at program startup. */
static int run(int, char **, void * =0, void (*)(void *) = 0);
+ /** Sets application startup info, including argv[0] value and platform-
+ specific data.
+
+ This function can only be called once, and is normally called by
+ Application::run(). */
+ static void set_startup_info(const char *, void *);
+
static void *get_data() { return data_; }
static const char *get_argv0() { return argv0_; }
static const std::string &get_name() { return name_; }