デバッグの目的で、ポインター値 (ほとんどの場合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)で生成されます。