阅读:6509回复:3
来看看firefox的代码吧!
就看这个开头,也是很简单的,不是吗?
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Brian Ryner <bryner@brianryner.com> * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsXULAppAPI.h" #ifdef XP_WIN #include <windows.h> #include <stdlib.h> #endif #include "nsBuildID.h" static const nsXREAppData kAppData = { sizeof(nsXREAppData), nsnull, "Mozilla", "Firefox", NS_STRINGIFY(APP_VERSION), NS_STRINGIFY(BUILD_ID), "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}", "Copyright (c) 1998 - 2005 mozilla.org", NS_XRE_ENABLE_PROFILE_MIGRATOR | NS_XRE_ENABLE_EXTENSION_MANAGER }; // 控制台形式运行 int main(int argc, char* argv[]) { return XRE_main(argc, argv, &kAppData); } // 窗口形式运行 #if defined( XP_WIN ) && defined( WIN32 ) && !defined(__GNUC__) // We need WinMain in order to not be a console app. This function is // unused if we are a console application. int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR args, int ) { // Do the real work. return main( __argc, __argv ); } #endif |
|
|
1楼#
发布于:2006-02-21 00:11
ns大概就是netscape的缩写吧
|
|
|
2楼#
发布于:2006-02-21 00:11
nsXULAppAPI.h
#ifndef _nsXULAppAPI_h__ #define _nsXULAppAPI_h__ #include "prtypes.h" #include "nsID.h" /** * This API is "not even kinda frozen yet" */ /** * Indicates whether or not to heed "general.startup.*" prefs. * XXXbsmedberg this is going away */ #define NS_XRE_USE_STARTUP_PREFS (1 << 0) /** * Indicates whether or not the profile migrator service may be * invoked at startup when creating a profile. */ #define NS_XRE_ENABLE_PROFILE_MIGRATOR (1 << 1) /** * Indicates whether or not the extension manager service should be * initialized at startup. */ #define NS_XRE_ENABLE_EXTENSION_MANAGER (1 << 2) /** * Application-specific data needed to start the apprunner. */ struct nsXREAppData { /** * The name of the application vendor. This must be ASCII, and is normally * mixed-case, e.g. "Mozilla". */ const char *appVendor; /** * The name of the application. This must be ASCII, and is normally * mixed-case, e.g. "Firefox". */ const char *appName; /** * The major version, e.g. "0.8.0+" */ const char *appVersion; /** * The application's build identifier, e.g. "2004051604" */ const char *appBuildID; /** * The application's UUID. Used by the extension manager to determine * compatible extensions. */ nsID id; /** * The copyright information to print for the -h commandline flag, * e.g. "Copyright (c) 2003 mozilla.org". */ const char *copyright; /** * Combination of NS_XRE_ prefixed flags (defined above). */ PRUint32 flags; }; /** * The contract id for the nsIXULAppInfo service. */ #define XULAPPINFO_SERVICE_CONTRACTID \ "@mozilla.org/xre/app-info;1" /** * Begin an XUL application. Does not return until the user exits the * application. * @param aAppData Information about the application being run. * @return A native result code suitable for returning from main(). * * @note If the binary is linked against the standalone XPCOM glue, * XPCOMGlueStartup() should be called before this method. * * @note XXXbsmedberg Nobody uses the glue yet, but there is a * potentital problem: on windows, the glue calls * SetCurrentDirectory, and relative paths on the command line * won't be correct. */ int xre_main(int argc, char* argv[], const nsXREAppData* aAppData); #endif // _nsXULAppAPI_h__ 这个文件好像旧了点,少了几项定义... |
|
|
3楼#
发布于:2006-02-21 00:11
雷鸟的也是差不多
#include "nsXULAppAPI.h" #ifdef XP_WIN #include <windows.h> #include <stdlib.h> #endif #include "nsBuildID.h" #include "prtypes.h" static const nsXREAppData kAppData = { 0, "Thunderbird", APP_VERSION, BUILD_ID, // {3550f703-e582-4d05-9a08-453d09bdfdc6} { 0x3550f703, 0xe582, 0x4d05, { 0x9a, 0x08, 0x45, 0x3d, 0x09, 0xbd, 0xfd, 0xc6 } }, "Copyright (c) 2005 mozilla.org", NS_XRE_ENABLE_PROFILE_MIGRATOR | NS_XRE_ENABLE_EXTENSION_MANAGER }; int main(int argc, char* argv[]) { return xre_main(argc, argv, &kAppData); } #if defined( XP_WIN ) && defined( WIN32 ) && !defined(__GNUC__) // We need WinMain in order to not be a console app. This function is // unused if we are a console application. int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR args, int ) { // Do the real work. return main( __argc, __argv ); } #endif |
|
|