mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-29 01:19:11 +00:00
(svn r6420) -Feature [Win32]: Use an existing console if openttd was started from one.
Unfortunately this only works for WindowsXP or higher, all older MS-OS's are stuck with the old behaviour.
This commit is contained in:
13
win32.c
13
win32.c
@@ -786,16 +786,27 @@ static int ParseCommandLine(char *line, char **argv, int max_argc)
|
||||
return n;
|
||||
}
|
||||
|
||||
#ifndef ATTACH_PARENT_PROCESS
|
||||
#define ATTACH_PARENT_PROCESS ((DWORD)-1)
|
||||
#endif
|
||||
|
||||
void CreateConsole(void)
|
||||
{
|
||||
HANDLE hand;
|
||||
CONSOLE_SCREEN_BUFFER_INFO coninfo;
|
||||
BOOL (WINAPI *AttachConsole)(DWORD);
|
||||
|
||||
if (_has_console) return;
|
||||
|
||||
_has_console = true;
|
||||
|
||||
AllocConsole();
|
||||
/* Attach to an existing console if one exists. Unfortunately this function
|
||||
* only exists on WindowsXP or higher, so for all other users out there:
|
||||
* you're stuck with an additional console even if you started openttd from
|
||||
* the command line */
|
||||
if (!LoadLibraryList((Function*)&AttachConsole, "kernel32.dll\0AttachConsole\0") ||
|
||||
!AttachConsole(ATTACH_PARENT_PROCESS))
|
||||
AllocConsole();
|
||||
|
||||
hand = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
GetConsoleScreenBufferInfo(hand, &coninfo);
|
||||
|
Reference in New Issue
Block a user