(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.
replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
Darkvater 18 years ago
parent bfb41a5d26
commit 67e9294b22

@ -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);

Loading…
Cancel
Save