ページ 1 / 1
_System_EndProgram
Posted: 2006年3月24日(金) 17:24
by Toshi
インクルードの中の basic.sbp に記述されている _System_EndProgram は
クリティカル セクションとヒープの解放を行うものですが、
_System_StartupProgram のように自動では呼ばれないみたいなので
どこかのタイミングで呼ぶものなのでしょうか。
Re: _System_EndProgram
Posted: 2006年3月24日(金) 19:44
by ノッチ
> インクルードの中の basic.sbp に既述されている _System_EndProgram は
> クリティカル セクションとヒープの解放を行うものですが、
> _System_StartupProgram のように自動では呼ばれないみたいなので
> どこかのタイミングで呼ぶものなのでしょうか。
たしかに_System_StartupProgram自体を削除しても正常動作しますね。
呼ばれるはずのものが呼ばれてないのか、
なにかの名残で残ってるだけなのか、
ダミーで入ってるだけなのか、
ユーザに"呼んでね" と呼びかけているのか、
つまりよくわかりません。
Posted: 2006年3月24日(金) 20:02
by Toshi
これらのプロシージャで使われている変数名をインクルードのファイルから検索したところ
string(64).sbp, function.sbp(malloc 関係), prompt.sbp にあったので、
String 型の変数や malloc 関係の関数を扱ったり、N88BASIC モードのときに必要になるみたいです。。。
Posted: 2006年3月24日(金) 20:09
by ノッチ
> これらのプロシージャで使われている変数名をインクルードのファイルから検索したところ
> string(64).sbp, function.sbp(malloc 関係), prompt.sbp にあったので、
> String 型の変数や malloc 関係の関数を扱ったり、N88BASIC モードのときに必要になるみたいです。。。
そう思って_System_EndProgramを削除した状態でN88BASICモードで文字列を
使ってみたのですが何も起こらず終了しました。
コード: 全て選択
#N88BASIC
Dim a As String
a="1234567890"
End
こんなコードで試したのでもっと特殊なことをしないと反応しないのかも
しれませんが。
Posted: 2006年3月24日(金) 20:47
by Toshi
_System_StartupProgram は、呼ばないようにしただけでアクセス違反になりました。
_System_EndProgram は、呼ばなくても実行時にエラーにはなりませんが
メモリが完全には解放されなくなりますね。
なのでどこかで呼ぶものなのかと思い、質問した次第です。