INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/
本業の方のお仕事が再び忙しくなりつつあるので、断続的にしばらく更新が止まることがあります。

目次 | ←前へ / 2015-02-08 00:00 / 次へ→ / 最新へ⇒

■「いじくるつくーる ver.7.74.07」更新のお知らせ

2015/ 2/ 8 0:00:00


RSSRSS配信中

https://www.inasoft.org/








昨日付で、いじくるつくーる ver.7.74.07を公開しましたのでお知らせいたします。

あまり使っている人はいない機能かもしれませんが、メインウィンドウのカテゴリ「お気に入り」について、項目の表示がうまくいかない環境があったので調査したところ、項目表示の動作の過程で、配列の添字をマイナス値で参照するような処理になってしまう箇所があって、そこで動作が不定になっていたことが分かりました。

作者の環境(Windows 7 64bit/32bit)では、たまたま意図通りに動作していたのですが、最近入手した作者の環境(Windows 8.1 32bit)ではうまく動作しない状態となっていました。

というわけで、その部分を修正しています。

併せて、環境情報の表示(CCPU)において、ドライブの空容量表示を変えています。

GetDiskFreeSpaceEx() APIを用いて取得しております。このAPIで取得できる値は、次の3種類です。

  1. lpFreeBytesAvailable
  2. lpTotalNumberOfBytes
  3. lpTotalNumberOfFreeBytes
実はこれらについて、今まで、あまりよく分からずに使っておりました。正確には、よく分かっていなかった時代に作ったコーディングを、10年以上にわたり流用しており、自分でもこんなコードがあったことをすっかり忘れていた部分でした。

変数名から推測すると、1番目は「利用可能な空き容量」。2番目は「合計容量」。3番目も「空き容量の合計容量」といったところでしょうか。

たぶん当時の自分は、あまりここら辺について深く考えることなく、「3番目の値 / 2番目の値」と表記することで、ドライブの空き容量と合計容量表示を行っていたんですが、特定の環境においては、これだとおかしな表示結果になってしまうんですね。

クォータ制限(ユーザ毎に利用可能な容量を制限する)のある環境だと、おかしな表示になります。これだと、空き容量が合計容量を上回って、分子が分母よりも大きくなってしまう状況があり得るんですね。

1番目の利用可能な空き容量とは、クォータ制限されていた場合に、そのユーザの利用可能な範囲に限定した空き容量のこと。

2番目の合計容量は、変数名からは分からない物の、MSDNの解説を読めば、クォータ制限されていた場合に、その制限容量。

3番目の空き容量の合計は、クォータ制限とは関係無しに、そのドライブそのものの空き容量。

なので、「3番目の値 / 2番目の値」と表記するのではなく、「1番目の値 / 2番目の値」と表記するのが正しかったわけですね。

この件について、環境情報の表示(CCPU)の修正が入っています。


併せてこっそりと、Windows 10の最新のプレビュー版の内部バージョン(ver.10)に対応したり、固定(Fixed)ドライブなのに接続I/FがSDやMMCとなっている場合に、ドライブ識別を「eMMC」と表示するなどの修正も加えています。



目次 | ←前へ / 2015-02-08 00:00 / 次へ→ / 最新へ⇒


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。




2560983 (+0130)[+0708]

Copyright© 2010-2021 INASOFT