2016年12月03日

GetPrivateProfileInt で読んだ負の値を浮動小数点型にキャストする

GetPrivateProfileInt という.iniファイルから設定を読み取る関数があるのですが、
負の値をdouble型やfloat型にキャストすると、 -2147483648 となってしまいます。
回避するには
value = (double)(int)GetPrivateProfileInt("settings", "value", 0, ini_filename);
といった感じで、一度intにキャストすると上手くいきました。
本来、GetPrivateProfileIntの戻り値はUINTなので、負の値はとれないはずですが…

保存の方は
sprintf(ini_write_buff, TEXT("%d"), (int)(value));
WritePrivateProfileString("settings", "value", ini_write_buff, ini_filename);
といった感じなので負の値でも問題ありません。
posted by MON at 12:08| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
【今是昨非】http://nomulabo.com/