115 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			115 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #ifdef HXCPP_DLL_IMPORT
 | ||
|  | 
 | ||
|  |    extern "C" EXPORT_EXTRA void __main__() | ||
|  |    { | ||
|  |      __boot_all(); | ||
|  |      __hxcpp_main(); | ||
|  |    } | ||
|  | 
 | ||
|  | #elif defined(HX_ANDROID) && !defined(HXCPP_EXE_LINK)
 | ||
|  | 
 | ||
|  |    // Java Main....
 | ||
|  |    #include <jni.h>
 | ||
|  |    #include <hx/Thread.h>
 | ||
|  |    #include <android/log.h>
 | ||
|  | 
 | ||
|  |    extern "C" EXPORT_EXTRA void hxcpp_main() | ||
|  |    { | ||
|  |       HX_TOP_OF_STACK | ||
|  |       try | ||
|  |       { | ||
|  |          hx::Boot(); | ||
|  |          __boot_all(); | ||
|  |          __hxcpp_main(); | ||
|  |       } | ||
|  |       catch (Dynamic e) | ||
|  |       { | ||
|  |          __hx_dump_stack(); | ||
|  |          __android_log_print(ANDROID_LOG_ERROR, "Exception", "%s", e==null() ? "null" : e->toString().__CStr()); | ||
|  |       } | ||
|  |       hx::SetTopOfStack((int *)0,true); | ||
|  |    } | ||
|  | 
 | ||
|  |    extern "C" EXPORT_EXTRA JNIEXPORT void JNICALL Java_org_haxe_HXCPP_main(JNIEnv * env) | ||
|  |    { | ||
|  |       hxcpp_main(); | ||
|  |    } | ||
|  | 
 | ||
|  | #elif defined(HX_WINRT) && defined(__cplusplus_winrt)
 | ||
|  | 
 | ||
|  |    #include <Roapi.h>
 | ||
|  |    [ Platform::MTAThread ] | ||
|  |    int main(Platform::Array<Platform::String^>^) | ||
|  |    { | ||
|  |       HX_TOP_OF_STACK | ||
|  |       RoInitialize(RO_INIT_MULTITHREADED); | ||
|  |       hx::Boot(); | ||
|  |       try | ||
|  |       { | ||
|  |          __boot_all(); | ||
|  |          __hxcpp_main(); | ||
|  |       } | ||
|  |       catch (Dynamic e) | ||
|  |       { | ||
|  |          __hx_dump_stack(); | ||
|  |          return -1; | ||
|  |       } | ||
|  |       return 0; | ||
|  |    } | ||
|  | 
 | ||
|  | #else
 | ||
|  | 
 | ||
|  |    #if defined(HX_WIN_MAIN) && !defined(_WINDOWS_)
 | ||
|  |    #ifndef HINSTANCE
 | ||
|  |    #define HINSTANCE void*
 | ||
|  |    #endif
 | ||
|  |    #ifndef LPSTR
 | ||
|  |    #define LPSTR char*
 | ||
|  |    #endif
 | ||
|  |    extern "C" int __stdcall MessageBoxA(void *,const char *,const char *,int); | ||
|  |    #endif
 | ||
|  | 
 | ||
|  | 
 | ||
|  |    #if defined(TIZEN)
 | ||
|  |    extern "C" EXPORT_EXTRA int OspMain (int argc, char* pArgv[]) | ||
|  |    { | ||
|  |    #elif defined(HX_WIN_MAIN)
 | ||
|  |    int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) | ||
|  |    { | ||
|  |    #else
 | ||
|  | 
 | ||
|  |    extern int _hxcpp_argc; | ||
|  |    extern char **_hxcpp_argv; | ||
|  |    int main(int argc,char **argv) | ||
|  |    { | ||
|  |       _hxcpp_argc = argc; | ||
|  |       _hxcpp_argv = argv; | ||
|  |    #endif
 | ||
|  |       HX_TOP_OF_STACK | ||
|  |       hx::Boot(); | ||
|  |       try | ||
|  |       { | ||
|  |          __boot_all(); | ||
|  |          __hxcpp_main(); | ||
|  |       } | ||
|  |       catch (Dynamic e) | ||
|  |       { | ||
|  |          __hx_dump_stack(); | ||
|  |          #ifdef HX_WIN_MAIN
 | ||
|  |          MessageBoxA(0,  e==null() ? "null" : e->toString().__CStr(), "Error", 0); | ||
|  |          #else
 | ||
|  |          printf("Error : %s\n",e==null() ? "null" : e->toString().__CStr()); | ||
|  |          #endif
 | ||
|  |          return -1; | ||
|  |       } | ||
|  |       return 0; | ||
|  |    } | ||
|  |    #if 0
 | ||
|  |    } | ||
|  |    } | ||
|  |    #endif
 | ||
|  | 
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | 
 |