PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
12221 | 00/07/13 13:09:09 | RE(4):PB6.5: GetDiskFreeSpaceExの使い方(解決) By SAI_I |
12219 | 00/07/13 12:51:13 | RE(3):PB6.5: GetDiskFreeSpaceExの使い方(もう一つ質問) By てとらぽっと |
12214 | 00/07/13 11:30:09 | RE(2):PB6.5: GetDiskFreeSpaceExの使い方(もう一つ質問) By SAI_I |
12205 | 00/07/12 17:41:27 | RE(1):PB6.5: GetDiskFreeSpaceExの使い方 By キノタク |
12194 | 00/07/12 14:02:15 | PB6.5: GetDiskFreeSpaceExの使い方 By SAI_I |
カテゴリ:スクリプトの記述
日付:2000年07月12日 17:41 発信者:キノタク
題名:RE(1):PB6.5: GetDiskFreeSpaceExの使い方
SAI_Iさん、こんにちは。
>HD容量を求めたいです。
>
>過去ログを検索してみると、
>容量が2G以上の場合は GetDiskFreeSpaceEx を
>使うとあったのですが使い方が分かりません。
>
>そもそも、64Bitの引数があるような気がするのですが。
>それに変わる型などPBにあるのでしょうか?
確かに、PBには64bit精度の変数はないですね(僕が知らんだけかも...)
仕方がないのでunsignedlongの変数を2つ含んだ構造体を宣言してこれを引数に指定します。
構造体はこんな感じ...
global type ularge_integer from structure
unsignedlong low
unsignedlong high
end type
関数宣言はこれ
function integer GetDiskFreeSpaceEx(string lpDir, &
ref ularge_integer lpFreeBytesAvailableToCaller, &
ref ularge_integer lpTotalNumberOfBytes, &
ref ularge_integer lpTotalNumberOfFreeBytes) &
library \"KERNEL32.DLL\" alias for \"GetDiskFreeSpaceExA\"
そうすると、64Bit分の数値のうち上32bitがhighに、下32bitがlowに格納されます
あとは ( high * 4294967296 ) + low をdec型の変数にでも受ければいいんじゃないかしら。
もしかすると、環境によってエンディアンに負けるかもしれません。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.