/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* * This code attaches the process to the appropriate console.
*/
class nsNativeAppSupportWin : public nsNativeAppSupportBase { public: // Utility function to handle a Win32-specific command line // option: "--console", which dynamically creates a Windows // console. void CheckConsole();
if (CheckArg(gArgc, gArgv, "console") == ARG_FOUND) { if (AllocConsole()) { // Redirect the standard streams to the new console, but // only if they haven't been redirected to a valid file. // Visual Studio's _fileno() returns -2 for the standard // streams if they aren't associated with an output stream. if (_fileno(stdout) == -2) {
freopen("CONOUT$", "w", stdout);
} // There is no CONERR$, so use CONOUT$ for stderr as well. if (_fileno(stderr) == -2) {
freopen("CONOUT$", "w", stderr);
} if (_fileno(stdin) == -2) {
freopen("CONIN$", "r", stdin);
}
}
}
}
// Create and return an instance of class nsNativeAppSupportWin.
nsresult NS_CreateNativeAppSupport(nsINativeAppSupport** aResult) {
nsNativeAppSupportWin* pNative = new nsNativeAppSupportWin; if (!pNative) return NS_ERROR_OUT_OF_MEMORY;
// Check for dynamic console creation request.
pNative->CheckConsole();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.