SDL_main.cpp
资源名称:NETVIDEO.rar [点击查看]
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- /*
- SDL - Simple DirectMedia Layer
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Sam Lantinga
- slouken@libsdl.org
- */
- /*
- SDL_main.cpp
- The Epoc executable startup functions
- Epoc version by Hannu Viitala (hannu.j.viitala@mbnet.fi)
- */
- #include <e32std.h>
- #include <e32def.h>
- #include <e32svr.h>
- #include <e32base.h>
- #include <estlib.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <w32std.h>
- #include <apgtask.h>
- #include "SDL_error.h"
- #ifndef EXPORT_C
- # ifdef __VC32__
- # define IMPORT_C __declspec(dllexport)
- # define EXPORT_C __declspec(dllexport)
- # endif
- # ifdef __GCC32__
- # define IMPORT_C
- # define EXPORT_C __declspec(dllexport)
- # endif
- #endif
- #if defined(__WINS__)
- #include <estw32.h>
- IMPORT_C void RegisterWsExe(const TDesC &aName);
- #endif
- /* The prototype for the application's main() function */
- #define main SDL_main
- extern "C" int main (int argc, char *argv[], char *envp[]);
- extern "C" void exit (int ret);
- /* Epoc main function */
- GLDEF_C TInt E32Main()
- {
- /* Get the clean-up stack */
- CTrapCleanup* cleanup = CTrapCleanup::New();
- #if defined(__WINS__)
- /* arrange for access to Win32 stdin/stdout/stderr */
- RWin32Stream::StartServer();
- #endif
- /* Arrange for multi-threaded operation */
- SpawnPosixServerThread();
- /* Get args and environment */
- int argc=0;
- char** argv=0;
- char** envp=0;
- __crt0(argc,argv,envp);
- #if defined(__WINS__)
- /* Cause the graphical Window Server to come into existence */
- RSemaphore sem;
- sem.CreateGlobal(_L("WsExeSem"),0);
- RegisterWsExe(sem.FullName());
- #endif
- /* Start the application! */
- /* Create stdlib */
- _REENT;
- /* Set process and thread priority */
- RThread currentThread;
- currentThread.Rename(_L("SdlProgram"));
- currentThread.SetProcessPriority(EPriorityLow);
- currentThread.SetPriority(EPriorityMuchLess);
- /* Call stdlib main */
- int ret = main(argc, argv, envp); /* !! process exits here if there is "exit()" in main! */
- /* Call exit */
- exit(ret); /* !! process exits here! */
- /* Free resources and return */
- CloseSTDLIB();
- delete cleanup;
- return(KErrNone);
- }
- /* Epoc dll entry point */
- #if defined(__WINS__)
- GLDEF_C TInt E32Dll(TDllReason)
- {
- return(KErrNone);
- }
- EXPORT_C TInt WinsMain(TAny *)
- {
- E32Main();
- return KErrNone;
- }
- #endif