1#ifndef HOOPLE_MAIN_GROUP
2#define HOOPLE_MAIN_GROUP
43#define HOOPLE_STARTUP_CODE \
44 DEFINE_INSTANCE_HANDLE;
48 #define HOOPLE_MAIN(obj_name, obj_args) \
49 HOOPLE_STARTUP_CODE; \
50 int main(int argc, char *argv[]) { \
51 SET_ARGC_ARGV(argc, argv); \
53 obj_name to_run_obj obj_args; \
54 return to_run_obj.execute_application(); \
59#elif defined(__UNIX__) || defined(__GNU_WINDOWS__)
61 #define HOOPLE_MAIN(obj_name, obj_args) \
62 HOOPLE_STARTUP_CODE; \
63 int main(int argc, char *argv[]) { \
64 SET_ARGC_ARGV(argc, argv); \
66 obj_name to_run_obj obj_args; \
67 return to_run_obj.execute_application(); \
79 #define HOOPLE_MAIN(obj_name, obj_args) \
80 HOOPLE_STARTUP_CODE; \
81 int main(int argc, char *argv[]) { \
82 SET_ARGC_ARGV(argc, argv); \
84 obj_name to_run_obj obj_args; \
85 return to_run_obj.execute_application(); \
87 #elif defined(_AFXDLL)
89 #define HOOPLE_MAIN(obj_name, obj_args) \
90 HOOPLE_STARTUP_CODE; \
91 SET_ARGC_ARGV(__argc, __argv); \
92 tiny_application<obj_name> theApp;
93 #elif defined(__WIN32__)
95 #define HOOPLE_MAIN(obj_name, obj_args) \
96 HOOPLE_STARTUP_CODE; \
97 int WINAPI WinMain(application_instance instance, \
98 application_instance prev_instance, LPSTR lpCmdLine, \
100 SET_ARGC_ARGV(__argc, __argv); \
101 SET_INSTANCE_HANDLE(instance); \
103 obj_name to_run_obj obj_args; \
104 return to_run_obj.execute_application(); \
113 #define HOOPLE_MAIN(obj_name, obj_args) \
114 HOOPLE_STARTUP_CODE; \
115 int main(int argc, char *argv[]) { \
116 SETUP_CONSOLE_LOGGER; \
117 obj_name to_run_obj obj_args; \
118 return to_run_obj.execute_application(); \
Implements an application lock to ensure only one is running at once.
Aids in achievement of platform independence.