gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 06:07:59 24 4
gpt4 key购买 nike

我有一个 MyLogger 类,它将处理所有日志记录事件。因此我尝试使用这个 example

所以我的来源是:

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: %s\n", msg);
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s\n", msg);
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s\n", msg);
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s\n", msg);
abort();
}
}

然后我得到一个:

Error: 'myMessageOutput' was not declared in this scope
qInstallMessageHandler(myMessageOutput);

最佳答案

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

关于c++ - 使用 qInstallMessageHandler 的记录器类找不到指向函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31986048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com