デバッグの目的で、ポインター値 (ほとんどの場合this
) を qDebug に出力することがよくあります。
qDebug("pointer of current object = 0x%08x",this);
、フォーマット文字列として「%08x」を使用し、単にthis
パラメーターとして渡します。
ポインター値を QString に変換するにはどうすればよいですか?
これは私がこれまでに得たものです:
char p = (char)this;
return QString("0x%1").arg(p, 8, '0');
しかし、コンパイラはその値をどうするかを理解していないようです。この場合、キャストはchar
正しいですか?または、これを行うためのより安全な方法は何でしょうか?
Qt 4.7.4 での Visual C++ の使用。
編集
qulonglong
提案どおりに使用する
qulonglong p = (qulonglong)this;
return QString("0x%1").arg(p, 8, '0');
コンパイラ エラー メッセージ(エラー C2666)で生成されます。