summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tools/clangbackend/clangbackendmain.cpp24
-rw-r--r--src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp2
-rw-r--r--src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp2
3 files changed, 9 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"));
diff --git a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp
index 7a871bb033..a4b5ec3b52 100644
--- a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp
+++ b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp
@@ -247,8 +247,10 @@ struct Data // because we have a cycle dependency
};
#ifdef Q_OS_WIN
+extern "C" void OutputDebugStringW(const wchar_t* msg);
static void messageOutput(QtMsgType type, const QMessageLogContext &, const QString &msg)
{
+ OutputDebugStringW(msg.toStdWString().c_str());
std::wcout << msg.toStdWString() << std::endl;
if (type == QtFatalMsg)
abort();
diff --git a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
index aaef21b608..bca4551b2f 100644
--- a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
+++ b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
@@ -131,8 +131,10 @@ struct Data // because we have a cycle dependency
};
#ifdef Q_OS_WIN
+extern "C" void OutputDebugStringW(const wchar_t* msg);
static void messageOutput(QtMsgType type, const QMessageLogContext &, const QString &msg)
{
+ OutputDebugStringW(msg.toStdWString().c_str());
std::wcout << msg.toStdWString() << std::endl;
if (type == QtFatalMsg)
abort();