1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
/*
Sonic Visualiser
An audio file viewer and annotation editor.
Centre for Digital Music, Queen Mary, University of London.
This file copyright 2006 Chris Cannam.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. See the file
COPYING included with this distribution for more information.
*/
#include <iostream>
#include <qglobal.h>
#ifdef Q_OS_WIN32
#include <fcntl.h>
// required for SetDllDirectory
#define _WIN32_WINNT 0x0502
#include <windows.h>
// Set default file open mode to binary
//#undef _fmode
//int _fmode = _O_BINARY;
void redirectStderr()
{
#ifdef NO_PROBABLY_NOT
HANDLE stderrHandle = GetStdHandle(STD_ERROR_HANDLE);
if (!stderrHandle) return;
AllocConsole();
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(stderrHandle, &info);
info.dwSize.Y = 1000;
SetConsoleScreenBufferSize(stderrHandle, info.dwSize);
int h = _open_osfhandle((long)stderrHandle, _O_TEXT);
if (h) {
FILE *fd = _fdopen(h, "w");
if (fd) {
*stderr = *fd;
setvbuf(stderr, NULL, _IONBF, 0);
}
}
#endif
}
#endif
extern void svSystemSpecificInitialisation()
{
#ifdef Q_OS_WIN32
redirectStderr();
// Remove the CWD from the DLL search path, just in case
SetDllDirectory(L"");
putenv("PATH=");
// Some older versions of MinGW require this in order to get
// C99/POSIX-standard behaviour for (s)printf formatting
putenv("PRINTF_EXPONENT_DIGITS=2");
#else
#endif
}
|