00001
00002
00003 #include "ace/OS_main.h"
00004
00005 ACE_RCSID(ace, OS_main, "OS_main.cpp,v 4.11 2006/05/30 13:15:25 schmidt Exp")
00006
00007 #if defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) && !defined (ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER)
00008
00009 # if !defined (ACE_HAS_MINIMAL_ACE_OS)
00010 # include "ace/Object_Manager.h"
00011 # endif
00012
00013
00014
00015
00016
00017
00018
00019
00020 # if !defined (ACE_MAIN_OBJECT_MANAGER)
00021 # define ACE_MAIN_OBJECT_MANAGER \
00022 ACE_OS_Object_Manager ace_os_object_manager; \
00023 ACE_Object_Manager ace_object_manager;
00024 # endif
00025
00026 # if !defined (ACE_WIN32)
00027
00028 # if !(defined (ACE_VXWORKS) && !defined (__RTP__))
00029
00030 extern int ace_main_i (int, char *[]);
00031 # endif
00032
00033 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00034
00035 # if defined (ACE_VXWORKS) && !defined (__RTP__)
00036 ace_main_proc_ptr vx_ace_main_i_ptr = 0;
00037
00038 int ace_os_main_i (int argc, char *argv[])
00039 {
00040 ACE_MAIN_OBJECT_MANAGER
00041 return vx_ace_main_i_ptr ? (*vx_ace_main_i_ptr) (argc, argv) : (-1);
00042 }
00043 # else
00044 int ace_os_main_i (int argc, char *argv[])
00045 {
00046 ACE_MAIN_OBJECT_MANAGER
00047 return ace_main_i (argc, argv);
00048 }
00049 # endif
00050
00051 ACE_END_VERSIONED_NAMESPACE_DECL
00052
00053 # elif !defined (ACE_HAS_WINCE)
00054
00055 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00056
00057 # if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
00058 int ACE_Main_Base::run (int argc, ACE_TCHAR *argv[])
00059 {
00060 return this->run_i (argc, argv);
00061 }
00062
00063 ACE_Export int
00064 ace_os_wmain_i (ACE_Main_Base &mbase, int argc, ACE_TCHAR *argv[])
00065 {
00066 ACE_MAIN_OBJECT_MANAGER
00067 return mbase.run (argc, argv);
00068 }
00069 # else
00070 int ACE_Main_Base::run (int argc, char *argv[])
00071 {
00072 return this->run_i (argc, argv);
00073 }
00074
00075 ACE_Export int
00076 ace_os_main_i (ACE_Main_Base &mbase, int argc, char *argv[])
00077 {
00078 ACE_MAIN_OBJECT_MANAGER
00079 return mbase.run (argc, argv);
00080 }
00081 # endif
00082
00083 ACE_END_VERSIONED_NAMESPACE_DECL
00084
00085 # else
00086
00087
00088
00089 # include "ace/OS_NS_string.h"
00090 # include "ace/ACE.h"
00091 # include "ace/ARGV.h"
00092
00093 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00094
00095 int ACE_Main_Base::run (HINSTANCE,
00096 HINSTANCE,
00097 LPWSTR lpCmdLine,
00098 int)
00099 {
00100 ACE_TCHAR cmdline[1024];
00101 ACE_OS::strcpy (cmdline, ACE_LIB_TEXT ("program "));
00102 ACE_OS::strcat (cmdline, ACE_TEXT_WCHAR_TO_TCHAR (lpCmdLine));
00103 ACE_ARGV ce_argv (cmdline);
00104 ACE::init ();
00105 ACE_MAIN_OBJECT_MANAGER
00106 int i = this->run_i (ce_argv.argc (), ce_argv.argv ());
00107 ACE::fini ();
00108 return i;
00109 }
00110 ACE_END_VERSIONED_NAMESPACE_DECL
00111
00112 # endif
00113
00114 # endif