PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
3569 98/10/08 12:01:48 RE(6):PB5.0.04: グローバル変数の使い方 By あすかちゃんの父
3567 98/10/08 11:58:17 RE(5):PB5.0.04: グローバル変数の使い方 By あすかちゃんの父
3566 98/10/08 11:44:42 RE(4):PB5.0.04: グローバル変数の使い方 By こてちゅ
3563 98/10/08 10:39:37 RE(3):PB5.0.04: グローバル変数の使い方 By てとらぽっと
3561 98/10/08 10:14:33 RE(2):PB5.0.04: グローバル変数の使い方 By あすかちゃんの父
3544 98/10/06 21:46:00 RE(1):PB5.0.04: グローバル変数の使い方 By Taka
3543 98/10/06 20:35:36 PB5.0.04: グローバル変数の使い方 By あすかちゃんの父

カテゴリ:スクリプトの記述
日付:1998年10月06日 21:46 発信者:Taka
題名:RE(1):PB5.0.04: グローバル変数の使い方

あすかちゃんの父さん、こんばんは。

>ユーザオブジェクト関数を何回もコールすると、その都度メモリ
>を確保して、アプリケーション終了まで破棄されない、ってこと
>は無いですよね?

それは無いはずですよ。
いわゆる「オブジェクト」が保持される変数は、おそらく、内部的には
Longビット長でそのハンドルのみを保持していると思いますし、関数や
イベントも、名前とアドレスだけが管理されていて、呼び出される都度
そのアドレスに該当するロジック(コンパイルされたスクリプト?)を実行する...
のだと思います。

もちろん、その関数,イベントの中でローカル宣言された変数は、一連の
スクリプトが終了すれば開放されるはずですし。
(PB自体にバグがあれば問題外ですが...)

ちなみに、
>nvo_win32api  uo_win32api
>といった具合に宣言して、nvo_win32apiのユーザオブジェクト
>をuo_win32apiで参照するようにしています。
は、とくにやらなくても良いと思います。

nvo_win32api を保存した時点でそれは、
  nvo_win32api型のグローバル変数 nvo_win32api
として、暗黙に宣言されています。したがって、
  nvo_win32api = CREATE nvo_win32api
とか
  DESTROY nvo_win32api
とかすればOKです。(もちろん、用途にもよりますが)

ウィンドウ w_001 を作成保存すれば Open( w_001 ) で開けるのと同じです。
w_001は、w_001型のグローバル変数 w_001 を意味します。

あまり核心に迫ったコメントにはなりませんでした。ごめんなさい。以上。

おまけってゆーか
  昔、nvoをDESTROYしても、ハンドルがクリアされるだけでそれ自体が
  保有していた実メモリは開放されないというバグがあったような...

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Sybase SQL Anywhere Client
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Anywhere Server
WebServer (記載なし)

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