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
 | 
						|
 | 
						|
 |