使用qInstallMessageHandler的记录器类找不到指向函数的指针



我有一个类MyLogger,它将处理所有日志活动。因此,我尝试使用这个例子

所以我的来源是:

MyLogger::MyLogger(QWidget *parent) :
  QDialog(parent),
  ui(new Ui::MyLogger)
{
  ui->setupUi(this);
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
  qInstallMessageHandler(myMessageOutput);
#else
  qInstallMsgHandler(myMessageOutput);
#endif
}
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
void myMessageOutput(QtMsgType type, const QMessageLogContext &, const QString & str)
{
    const char * msg = str.toStdString().c_str();
#else
void myMessageOutput(QtMsgType type, const char *msg)
{
#endif
    switch (type)
    {
        case QtDebugMsg:
            fprintf(stderr, "Debug: %sn", msg);
            break;
        case QtWarningMsg:
            fprintf(stderr, "Warning: %sn", msg);
            break;
        case QtCriticalMsg:
            fprintf(stderr, "Critical: %sn", msg);
            break;
        case QtFatalMsg:
            fprintf(stderr, "Fatal: %sn", msg);
            abort();
    }
}

但后来我得到了一个:

错误:未在此范围中声明"myMessageOutput">
qInstallMessageHandler(myMessageOutput(;

要么将myMessageOutput()移到MyLogger::MyLogger()之前,要么在此之前使用单独的声明。

相关内容

  • 没有找到相关文章

最新更新