メモリ情報獲得APIについて

解決


てつじ  2002-07-30 16:54:38  No: 104585  IP: [192.*.*.*]

始めまして。よくこのHPにはお世話になってます。
ここのHPにもサンプルで載っているのですが、
メモリ情報の獲得を行うためのAPIですが、
NT(4.0 SP6)では問題なく処理されていたのですが、
Win2000にしたら、トータルメモリがマイナスになってしまいます。
値を見比べたら合ってそうなので単純に−1を掛けて逃げてるのですが、
こんなんで良いのでしょうか?

編集 削除
蜻蛉  URL  2002-07-30 20:32:55  No: 104586  IP: [192.*.*.*]

GlobalMemoryStatus を使っているんですよね?

…Win2000でマイナスになるというような現象はうちのPCでは起きてません。
はい。普通に表示されています。

VBのSP、Win2000のSPナンバーを確認してみてください。

編集 削除
てつじ  2002-07-31 10:25:40  No: 104587  IP: [192.*.*.*]

蜻蛉さん、返信ありがとうございます。
>GlobalMemoryStatus を使っているんですよね?
その通りです。
ちなみに2000のSPは2で、
VBのSPは5です。
社内でSP5の使用は禁止と言う事だったのですが、
そこになにかあるのでしょうかね?

編集 削除
Say  2002-07-31 14:39:30  No: 104588  IP: [192.*.*.*]

2,147,483,647バイト以上のメモリをつんでる、
なんてことないでしょうね?
もしそうなら、VBのLong型ではオーバーフローします。

編集 削除
蜻蛉  URL  2002-07-31 16:13:57  No: 104589  IP: [192.*.*.*]

NT 環境と 2k 環境のメモリ量は同じですか?
もしもオーバーフローしてるなら負の数になる場合があります。

でも2GBもメモリ積んでたら普通はServerなので…

もっと変数を大きな型に変えてみてください…
バリアント型は便利ですが遅いのでやめておきましょう。

編集 削除
てつじ  2002-07-31 16:39:37  No: 104590  IP: [192.*.*.*]

Sayさんカキコありがとうございました。
実メモリは1GBですが、仮想も1.5Gせっていされていて、
仮想を512Mにおとしてみたところ、
正常に動作しました。
ありがとうございました。

編集 削除