文字列関数とエラー コード

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 文字列関数とエラー コード

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

by Toshi » 2005年12月26日(月) 21:47

ご指摘の通り、エラーをクリアすると確かにエラーが出なくなりました。

するとこれ以前にエラーがあるということになりますが、
ただの abp ファイルにこの例を記述するだけでエラーが出ていました。

・エラー コードをクリアせず、関数も呼ばないと 0
・エラー コードをクリアせず、関数を呼ぶと 6
・エラー コードをクリアし、関数を呼ばないと 0 (当然ですね)
・エラー コードをクリアし、関数も呼ぶと 0

そして関数を呼ぶのがエラー コードを取る前でも後でもエラーが出ていることから、
関数を呼ぶコードを記述しただけでエラーが出るということになりますね。
するとインクルードの方に何かあるんでしょうかね?

by Uhsp » 2005年12月26日(月) 21:31

私の環境(ActiveBasic4.12.02 UHSP3.10)では「ハンドルが無効です。」
エラーは出ませんが(把握している起動時)直前のエラーが表示されます。

下記にてエラーをクリヤーしてサンプルを実行するとエラーは出なくなるので
サンプル実行以前にエラーがあるのでは無いでしょうか?

コード: 全て選択


 Declare Sub SetLastError Lib "kernel32" ( _
         ByVal dwErrCode as Long)

 SetLastError(0) 

文字列関数とエラー コード

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 というエラー コードが返って来ているのは何故なんでしょうか?

ページトップ