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()の中身を見たほうがよいと思うのですが、そこはいつかみてみたいと思います(*^-^)
« 今後の機能を妄想する | トップページ | 今朝ハマったこと »
コメント