No.4
- 回答日時:
>>私の意図は正にその通りなのですが、VBで出来ないのですか。
。。>>APIを多用し過ぎて、リソース不足でアプリが動かないなんてことは起こり得るんでしょうか?
これは使う、APIによります。
MSDNのマニュアルには、APIを使った後、後処理をしないと
いけないと書いてあるものもあります
それのとおりに行わないと、アプリケーション内でメモリーリークが発生します。
基本的に、マニュアルどおりにすればロースぺックのPCでも簡単に動作します。
ただし、VBに対応したAPIに限ります
VBに対応しないAPIを使用すると突然意図しない終了をおこします。
趣味で個人で使うアプリを作っているだけなので、APIは解説書の内容を見よう見真似で使っており、MSDNのマニュアルなど、ほとんど読んだことがありません。
きちんと勉強します。
ありがとうございました。
No.3ベストアンサー
- 回答日時:
>APIを多用し過ぎて、リソース不足でアプリが動かないなんてこと・・・
APIはメモリにロードしているのですから、有り得ない話ではないですが、
それを心配するのは現実的ではありません。
そんな状態を招くには、何百、何千というDLLを動かす必要があるでしょう。
むしろオブジェクトやmallocなどで取得した領域の開放忘れによる
リソース漏れの方がよほど深刻で現実的な問題です。
VBですと画像を扱う場合にコンパチブルなデバイスコンテキストを
作成する機会は多いかと思います。
こういう場面でリソース漏れ(GDIシステムリソース)が発生する
危険性は非常に高いといえます。
私はかつてあるクライアントの依頼でビューワを作成したことがあります。
1Gのメモリを積んでもらったので、設計上はDIBで5万枚の画像まで
メモリに読み込めるはずでした。
参考書をみようみまねで表示する部分を作成したのですが、
200枚を過ぎた頃から激しく不安定になったのです。
それで色々調べたところ参考書に穴があって
リソース漏れが発生したことが判明いたしました。
参考書は画像1枚だけを処理するものだったので露見しなかったのです。
しかし、この件は参考書は責められないと思いました。
露見しなければ気付かないなと私も思いましたから。
かようにWindowsにはリソース漏れの罠があちこちにあるのです。
詳しい解説、ありがとうございます。
私が使用しているのAPIは精々10個程度ですので、心配なさそうです。
それよりオブジェクトお開放について、見直します。
No.2
- 回答日時:
両方の意味が可能なのですが、
質問をVBのカテゴリにしてきたことを考慮して
それに的を絞って回答すると前者ということになります。
後者の意図していることは、
おそらく不必要になったらメモリから解放するということだと思いますが、
こういう芸当は明示的リンクといってVBではできないと聞いています。
Cで明示的リンクはLoadLibrary関数で呼び出し、ポインタで参照します。
世の中に多く出ているプラグインと呼ばれる類のDLLは
こういう仕組みがないと活用できません。
前者はメモリに常駐し続けますが、
既に他のアプリ(例えばワード)とかも同じDLLを使っていると、
そちらのDLLを拝借しにいくようになっています。
だから同じAPI(DLL)が複数のアプリで使われている場合は、
メモリの節約になるわけです。
回答ありがとうございます。
> おそらく不必要になったらメモリから解放するということだと思いますが、
> こういう芸当は明示的リンクといってVBではできないと聞いています。
私の意図は正にその通りなのですが、VBで出来ないのですか。。。
APIを多用し過ぎて、リソース不足でアプリが動かないなんてことは起こり得るんでしょうか?
No.1
- 回答日時:
>>このプログラムを実行中はメモリーに常駐し、
>>メモリーを消費(浪費)してしまうのでしょうか?
基本的に、ブログラムはステップ毎の処理になるので
該当のAPIが実行されてはじめて実際のメモリー消費がなされます
しかし、定義自体先に全部すんでいるわけですから
予約されているメモリーは多くなります。
(この辺は、動的にDLLをリンクしないCと同じです。)
つまり見た目、メモリー消費は多いです
早々にご回答、ありがとうございます。
「見た目」の意味がいま一つ理解できませんが、とにかくAPIは使った分だけ、消費量は増えるということですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- CPU・メモリ・マザーボード パソコンでCPUとメモリー、優先は? 11 2023/01/11 17:19
- 財務・会計・経理 パソコンの税務上の会計処理について 6 2022/09/07 10:41
- CPU・メモリ・マザーボード ノートPCのメモリー交換をしたいと思っています。 現在4GB(3.7GB使用済)、1/2スロ ↓ 交 3 2022/09/18 23:51
- 経済学 答えが二つ出て曖昧なので誰か時給教えていただけると幸いです。 ある財の市場における需要関数と供給関数 3 2022/11/15 23:10
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- 一戸建て アスベスト物件解体に必要なこと 2 2023/07/12 07:10
- 確定申告 個人事業者が源泉徴収額ありで法人に請求書を出す書き方について 2 2022/06/22 22:03
- その他(法律) 共有者と弁護士費用の折半分の金額について、意見が分かれています。 2 2022/04/03 15:11
- その他(家計・生活費) 救急車費用やその後の治療費用はいくらくらいなのでしょうか。 2 2023/02/01 11:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
【C言語】再帰が時間がかかる...
-
マインスイーパ、自動解析プロ...
-
sil_rew_memのメモリアクセスに...
-
大容量のメモリ確保をスワップ...
-
C言語で、メモリを解放しないで...
-
ターボDelphi 独自カーソルの設定
-
メモリ不足
-
メモリのセグメント違反の解決...
-
メモリの解放の仕方
-
メモリの増加に関して
-
ファミコンって8ビットしかない...
-
エクセルのメモリ使用状況/Appl...
-
「memcpy」と「strcpy」について
-
VBAで2進数を返すプログラムの...
-
CImage::ReleaseDC()のエラーで...
-
C,C++プログラムの強制終了時の...
-
ExitProcessの関数コールについ...
-
GPUプログラミング時の表示用GPU
-
スーパーマリオのパワーアップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
「ヒープサイズの設定」て何?
-
C言語における再帰呼び出しの...
-
エクセルVBA 大容量CSVファイル...
-
動的メモリとexit(C言語)
-
エクセルのメモリ使用状況/Appl...
-
メモリが不足しています(VBA)
-
ファイルマッピング関数で失敗
-
大容量のメモリ確保をスワップ...
-
メモリのセグメント違反の解決...
-
EXCEL-VBAにてADOのレコードセ...
-
メモリ不足
-
エクセル キャッシュメモリー...
-
【C言語】再帰が時間がかかる...
-
C#のOutOfMemoryException発生...
-
closeとメモリの開放について
-
バッチファイルでの実行EXEのメ...
-
メモリの解放について VB6 VBA
-
「memcpy」と「strcpy」について
おすすめ情報