« 今後の機能を妄想する | トップページ | 今朝ハマったこと »

2014年6月17日 (火)

QStringからconst char *を取得する

QStringで管理している文字列を古いインタフェースで渡したい時にconst char *に変換する必要がありました。

検索すると以下の様な方法が書かれているページを見つけました。

コンストラクタがCipher(const char *)なのです。QStringで渡して、中で処理しろよというツッコミはあると思いますが。

// bootTime
bootTime = QDateTime::currentDateTime(); // 現在の日時情報を得る

// create cipher 現在の日時情報の文字列を暗号化キーにして暗号化機能を準備する
QByteArray bootTimeStr = bootTime.toString().toUtf8();
cipher = new Cipher(bootTimeStr.constData());

で、あとで「入門Qt4プログラミング」を眺めていたら、qPrintable()というマクロがあると書かれていました。
QStringのインスタンスからconst char *を取得できると…

// bootTime
bootTime = QDateTime::currentDateTime();

cipher = new Cipher(qPrintable(bootTime.toString()));

とシンプルになりました。qPrintable()の中身を見たほうがよいと思うのですが、そこはいつかみてみたいと思います(*^-^)

« 今後の機能を妄想する | トップページ | 今朝ハマったこと »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: QStringからconst char *を取得する:

« 今後の機能を妄想する | トップページ | 今朝ハマったこと »