diff options
Diffstat (limited to 'src/tools/clangbackend/clangbackendmain.cpp')
-rw-r--r-- | src/tools/clangbackend/clangbackendmain.cpp | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/tools/clangbackend/clangbackendmain.cpp b/src/tools/clangbackend/clangbackendmain.cpp index 1e95db3ef3..76aff06d3b 100644 --- a/src/tools/clangbackend/clangbackendmain.cpp +++ b/src/tools/clangbackend/clangbackendmain.cpp @@ -57,25 +57,11 @@ QString processArguments(QCoreApplication &application) } #ifdef Q_OS_WIN -struct MessageHandler { - MessageHandler(QtMessageHandler handler) - { - defaultHandler = qInstallMessageHandler(handler); - } - - ~MessageHandler() - { - qInstallMessageHandler(defaultHandler); - } - - static QtMessageHandler defaultHandler; -}; - -QtMessageHandler MessageHandler::defaultHandler = nullptr; - -static void messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) +extern "C" void OutputDebugStringW(const wchar_t* msg); +static void messageOutput(QtMsgType type, const QMessageLogContext &/*context*/, + const QString &msg) { - MessageHandler::defaultHandler(type, context, msg); + OutputDebugStringW(msg.toStdWString().c_str()); std::wcout << msg.toStdWString() << std::endl; if (type == QtFatalMsg) abort(); @@ -85,7 +71,7 @@ static void messageOutput(QtMsgType type, const QMessageLogContext &context, con int main(int argc, char *argv[]) { #ifdef Q_OS_WIN - MessageHandler messageHandler(&messageOutput); + qInstallMessageHandler(&messageOutput); #endif QCoreApplication::setOrganizationName(QStringLiteral("QtProject")); QCoreApplication::setOrganizationDomain(QStringLiteral("qt-project.org")); |