ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
Toshi
記事: 98 登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
#1
投稿記事
by Toshi » 2005年12月26日(月) 20:54
コード: 全て選択
Dim i As DWord
i=GetLastError()
Debug
こうして i の値を確認すると当然 0 ですが、
コード: 全て選択
Dim i As DWord
i=GetLastError()
Debug
Val("")
こうすると何故か 6 になっています。
因みにエラー コードの 6 は「ハンドルが無効です」でした。
Val や Str$ で発生しました。
これらの関数の中で何かエラーになっているのかも知れないと思います。
また疑問ですが、関数を呼ぶ前から 6 というエラー コードが返って来ているのは何故なんでしょうか?
Uhsp
#2
投稿記事
by Uhsp » 2005年12月26日(月) 21:31
私の環境(ActiveBasic4.12.02 UHSP3.10)では「ハンドルが無効です。」
エラーは出ませんが(把握している起動時)直前のエラーが表示されます。
下記にてエラーをクリヤーしてサンプルを実行するとエラーは出なくなるので
サンプル実行以前にエラーがあるのでは無いでしょうか?
コード: 全て選択
Declare Sub SetLastError Lib "kernel32" ( _
ByVal dwErrCode as Long)
SetLastError(0)
Toshi
記事: 98 登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
#3
投稿記事
by Toshi » 2005年12月26日(月) 21:47
ご指摘の通り、エラーをクリアすると確かにエラーが出なくなりました。
するとこれ以前にエラーがあるということになりますが、
ただの abp ファイルにこの例を記述するだけでエラーが出ていました。
・エラー コードをクリアせず、関数も呼ばないと 0
・エラー コードをクリアせず、関数を呼ぶと 6
・エラー コードをクリアし、関数を呼ばないと 0 (当然ですね)
・エラー コードをクリアし、関数も呼ぶと 0
そして関数を呼ぶのがエラー コードを取る前でも後でもエラーが出ていることから、
関数を呼ぶコードを記述しただけでエラーが出るということになりますね。
するとインクルードの方に何かあるんでしょうかね?
Uhsp
#4
投稿記事
by Uhsp » 2005年12月26日(月) 22:14
下記結果から#N88BASIC関係でエラーが出ているのではと推測されます。
コード: 全て選択
'Error=6
#N88BASIC
print GetLastError()
while 1
Wend
'Error=203
#console
print GetLastError()
while 1
Wend
'Project(RAD)
'Error=0
Sub MainWnd_CommandButton1_Click()
msgbox 0,Str$(GetLastError())
End Sub