qDebug()ステートメントがQtの標準メッセージハンドラでうまく動作するが、自分自身に切り替えると失敗する理由を調べた後、ここで魅力的です他の誰かが問題を経験しているかどうかを確認してください。何もしない試してみました/について私が知っているQt5はqDebug()ステートメントをQt Creator 2.6コンソールにリダイレクトします
物事、...
1)CONFIG += console
2)DEFINES -= QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
3)::fprintf(stderr, "ERROR\n"); ::fflush(stderr);
4)::fprintf(stdout, "OUTPUT\n"); ::fflush(stdout);
5)std::cerr << "CERROR" << std::endl; std::cerr.flush();
は、最新のテストがWinAPIのはこれがすべて正しい動作になりコマンドを使用して自分自身にコンソールを割り当てた
int main(int argc, char *argv[]) {
// Use my handler
qInstallMessageHandler(MyCustomLogger);
qDebug() << "Not Printed";
// Use standard handler
qInstallMessageHandler(0);
qDebug() << "Correctly Printed";
// Use my handler again
qInstallMessageHandler(MyCustomLogger);
qDebug() << "Not Printed Again...";
}
(すなわち、それはQtCreatorコンソールにメッセージを出力します)私が作成したコンソールでstderrとstdoutへの出力が見えます。しかし、これは私が望む振る舞いではなく、私はこの出力をQtCreatorで見ることができるようにしたいと考えています。
標準メッセージハンドラがどのようにデバッガに出力されるかについての考えはありますか? まだQtソースでは見つかりませんでした。
、qDebugは()デバッグチャネルではなく、標準エラー出力を使用しています。 –
私は以前、デバッグチャネルについて聞いたことがないことを認めなければなりません。 –