gpt4 book ai didi

c++ - 如何打印 Qt :HANDLE on linux? (Qt5)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:25 24 4
gpt4 key购买 nike

作为一种验证我的代码实际运行在哪个线程下的方法,我使用 QThread::currentThreadId() .然而 Qt::HANDLE根据文档,从该函数返回的类型是一个依赖于平台的 typedef。在我的平台 (Linux) 上,它只是 void *(无类型指针)的类型定义。

那么我将如何使用例如 qDebug() 来打印它,以及如何将它转换为 QString

最佳答案

我使用以下两个帮助函数自行解决了这个问题。请注意,我选择使用 void * 作为类型而不是 Qt::HANDLE,因为这可能在其他情况和其他平台上也很有用。

//Allow Qt::HADNLE and void * to be streamed to QDebug for easier threads debugging
QDebug operator <<(QDebug d, void *p){
d.nospace() << QString::number((long long)p, 16);
return d.space();
}

//Allow Qt::HADNLE and void * to be added together with QString objects for easier threads debugging
const QString operator+ ( const QString &s, void *p ){
return (s+ QString::number((long long)p, 16));
}

关于c++ - 如何打印 Qt :HANDLE on linux? (Qt5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26693143/

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