1

膨大な数に問題があります。QSettings から数値を取得します。

settings.beginGroup( "filesizes" );
this->fileSize = settings.value( 309355 ).toLongLong();
qDebug() << __FILE__ << ":" << __LINE__ << std::numeric_limits<qlonglong>::max();              
qDebug() << __FILE__ << ":" << __LINE__ << "this->filesize: " << this->fileSize;
qDebug() << "loaded filesize" << this->fileSize;

設定に保存される数値は 12062891612 (バイト単位で ~11,x GB) です。4 行目で「-822010276」が返されますが、その理由がわかりません。this->fileSize は qint64 です。設定で数値を減らしましたが、2147483647 (2^31-1) より小さい限りすべて問題ありませんが、上記では負の数値が得られます。longlong と qint64 で十分なので、私はそれを理解していません?! 誰かがアイデアを持っていますか、何がうまくいかないのですか?

前もって感謝します!

4

2 に答える 2

0

問題は別の場所にあるようです。提供されたコードは正常に機能し、long long 値の切り捨てQSettingsも行われません。QVariant

于 2013-10-24T16:51:37.010 に答える