PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
16291 01/09/19 15:14:06 RE(4):PB5.0.02: メモリデフラッガの実行をとめる方法 By ひろまつ
15221 01/05/01 17:15:40 RE(3):PB5.0.02: メモリデフラッガの実行をとめる方法 By M.M
15219 01/05/01 13:31:38 RE(2):PB5.0.02: メモリデフラッガの実行をとめる方法 By ishidak
15195 01/04/27 15:38:13 RE(1):PB5.0.02: メモリデフラッガの実行をとめる方法 By M.M
15189 01/04/27 14:44:55 PB5.0.02: メモリデフラッガの実行をとめる方法 By ishidak

カテゴリ:PowerBuilderの開発環境
日付:2001年05月01日 17:15 発信者:M.M
題名:RE(3):PB5.0.02: メモリデフラッガの実行をとめる方法

ishidakさん、こんにちは。

>PowerBuilderとOCXのインターフェースでメモリデフラッガが作動すると、
>OCX側でアプリケーションエラーが発生する場合があるという現象を以前
>聞いたことがあるのですが・・・

メモリデフラッガの詳細については、アシストのHPに情報があるので参照して
ください。
(http://powersoft.ashisuto.co.jp/support/techdocs/pdf/7703.pdf)

上記の資料で、外部関数やOCXなどを使用時に戻り値の格納先のアドレスが
メモリデフラッガによって変更されてしまうことが原因でエラーが発生する
可能性があると言及しています。

で、OCX使用時の対策なんですが、私の知る限りは無いようです。
上記の資料ではMDIフレームに宣言した変数を使用するようにとありますが、
外部関数はともかく、OCXは無理ですよね。

じゃぁどうすればいいかってことになりますが、「メモリデフラッガ」を
起こさないようなアプリを作るしかないんじゃないかと思います。
多少の推測も混じりますが、メモリデフラッガはウィンドウの生成や廃棄
など多量にメモリを取得・開放したときに発生するようです。

ですから、
 ・1ウィンドウ当たりのコントロール数を少なめにして、メモリやリソースの消費量を減らす。
 ・なるべく複数のウィンドウを開かない。開くときはOCXの使用を控える。
 ・そもそも、OCXを使わない。PBのユーザオブジェクトで代置できるものは代置してしまう。
といった対策が考えられますし、実際私はそうしています。

今までのところ、メモリデフラッガが原因のトラブルには、私が作ったプログラムでは
出会ったことがありません。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.