_System_EndProgram

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

_System_EndProgram

#1 投稿記事 by Toshi »

インクルードの中の basic.sbp に記述されている _System_EndProgram は
クリティカル セクションとヒープの解放を行うものですが、
_System_StartupProgram のように自動では呼ばれないみたいなので
どこかのタイミングで呼ぶものなのでしょうか。
最後に編集したユーザー Toshi [ 2006年3月24日(金) 20:00 ], 累計 1 回
ノッチ
記事: 82
登録日時: 2005年6月01日(水) 23:27
お住まい: 北海道札幌市

Re: _System_EndProgram

#2 投稿記事 by ノッチ »

> インクルードの中の basic.sbp に既述されている _System_EndProgram は
> クリティカル セクションとヒープの解放を行うものですが、
> _System_StartupProgram のように自動では呼ばれないみたいなので
> どこかのタイミングで呼ぶものなのでしょうか。

たしかに_System_StartupProgram自体を削除しても正常動作しますね。

呼ばれるはずのものが呼ばれてないのか、
なにかの名残で残ってるだけなのか、
ダミーで入ってるだけなのか、
ユーザに"呼んでね" と呼びかけているのか、

つまりよくわかりません。
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

#3 投稿記事 by Toshi »

これらのプロシージャで使われている変数名をインクルードのファイルから検索したところ
string(64).sbp, function.sbp(malloc 関係), prompt.sbp にあったので、
String 型の変数や malloc 関係の関数を扱ったり、N88BASIC モードのときに必要になるみたいです。。。
ノッチ
記事: 82
登録日時: 2005年6月01日(水) 23:27
お住まい: 北海道札幌市

#4 投稿記事 by ノッチ »

> これらのプロシージャで使われている変数名をインクルードのファイルから検索したところ
> string(64).sbp, function.sbp(malloc 関係), prompt.sbp にあったので、
> String 型の変数や malloc 関係の関数を扱ったり、N88BASIC モードのときに必要になるみたいです。。。

そう思って_System_EndProgramを削除した状態でN88BASICモードで文字列を
使ってみたのですが何も起こらず終了しました。

コード: 全て選択

#N88BASIC

Dim a As String
a="1234567890"

End
こんなコードで試したのでもっと特殊なことをしないと反応しないのかも
しれませんが。
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

#5 投稿記事 by Toshi »

_System_StartupProgram は、呼ばないようにしただけでアクセス違反になりました。
_System_EndProgram は、呼ばなくても実行時にエラーにはなりませんが
メモリが完全には解放されなくなりますね。
なのでどこかで呼ぶものなのかと思い、質問した次第です。
返信する