MFC71.DLLのエラー – プログラミング – Home

通知
すべてクリア

[解決済] MFC71.DLLのエラー


ほまむ
 ほまむ
(@ほまむ)
ゲスト
結合: 16年前
投稿: 4
Topic starter  

原因不明のエラーが発生します。
アプリABCの3つあります。
VC2003のMFCアプリ(ダイアログベース)です。
OSはXP(Sp3)です。
3つのアプリをいろいろな組み合わせで
2つまでは正常起動できますが
3つ目を起動するとアプリケーションエラーになります
3つ目がAでもBでもCでも同じです。
イベントビューアで見るとイベントID;1000
エラー発生モジュール mfc71d.dll
と、なっていました。
VCのデバッグで3つめのアプリを起動すると
ダイアログのCreate内でエラーになっていました。
単体では問題ないのに3つ起動するとエラーというのは
メモリやリソースとかが不足してるせいでしょうか?
タスクマネージャでハンドルを見ると120ほど
GDIオブジェクトをみると330くらいでした
全体のハンドル数を見ると15000くらい
メモリは2Gありますが800Mくらい使用しています。
リソース不足してるように見えません。
何が原因で3つめのアプリがエラーになるのかわかりません
何かエラーを解決する方法をご存じありませんか?
よろしくお願いいたします。


引用未解決
トピックタグ
かもねぎ
 かもねぎ
(@かもねぎ)
ゲスト
結合: 17年前
投稿: 61
 

3つのアプリで同じクラス名とか使っていますか?


返信引用
ほまむ
 ほまむ
(@ほまむ)
ゲスト
結合: 16年前
投稿: 4
Topic starter  

>>3つのアプリで同じクラス名とか使っていますか?

クラス名というのはMFCクラスのことでしょうか?
3つともMFCダイアログアプリで
同じようなクラスを使用しています
CDialogとかCDCとか


返信引用
ほまむ
 ほまむ
(@ほまむ)
ゲスト
結合: 16年前
投稿: 4
Topic starter  

余計なアプリを起動せずに3つだけ起動すると
正常起動できました
ただ、その状態で他のアプリ(IEやタスクマネージャ)を
開こうとしても開けなかったりメニューの一部が消えたりします。
やはりアプリABCがリソースを大量に消費してるのだと思います。
それが何かはわかりませんがこれ以上くわしい情報が出せない以上、
ここで回答をもらうのも難しいと思いますので
ここで解決とさせていただきます。
ありがとうございました。


返信引用
ほまむ
 ほまむ
(@ほまむ)
ゲスト
結合: 16年前
投稿: 4
Topic starter  

原因がわかったので報告します

アプリが開かなかったのは
デスクトップヒープの制限にひっかかってたからみたいです。
XPだとデフォルトで3MB(コントロール15000個)らしく
この制限値をレジストリで増加したら正常に起動できました。
レジストリをいじるのがちょっと嫌ですがしかたないですね…


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> アプリが開かなかったのは
> デスクトップヒープの制限にひっかかってたからみたいです。

リソースを大量に消費しているのは必然なのですか?
もしも浪費しているのならば、そこを直すのが筋だと思いますが。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

普通に考えて3つのアプリで15000個のコントロールを使いっぱなしなんてのは
ちょっと考えられないです。
本当にそれだけのリソースを同時に使う必要があるのでしょうか?
同時に使う必要が無いのであれば、ウインドウ構成とかを見直した方が
良いのではないかと思います。

デフォルトで3MBと言うのはそれが通常の使用では問題ないレベルの
制限だからだと思いますのでその制限の中で動かないのであれば、
アプリの設計に問題があると考えた方が良いと思います。
そのアプリを使っている間は他のアプリは使えなくても良いと言う
仕様なら話は別ですが、そういう仕様だとユーザーからクレームが
来そうです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました