ProjectEditorでの・・・・
Posted: 2005年8月30日(火) 20:53
ABVer4.04.00でバグを発見しました。(β版では直っているかは分かりませんが)
まず1つ目に、Win32プログラミング講座にもあるOPENFILENAMEでABのコンパイラが例外処理(*1)を出しデバッグ側ではアクセス違反となります。
(例)
で説明すると、GetOpenFileName(ofn)の部分でエラーが出ました。(一行づつ「debug」を入れて確認して判明しました。)
ちなみに、デバッグコンパイルでは上のようになりますが、リリースコンパイルをした方のプログラムでは、正常に動作します。
2つ目に、構造体を宣言する「Type」で以下のように関数の前に全角のスペースがあると、ABが動作を停止します。
(例)
SHQUERYRBINFO.の「.」を入れた途端、補完機能が働き、表示させようとがんばっていますが、無限ループしたときみたいにCPUを食います。
もちろん、コンパイルをするとエラーを出しますが・・・
まぁ、この原因はユーザ側なので、すべてがABのせいではありませんが…
それと、さっき発見したのですが、AB4.1βの名残?なのか、「#Strict」を入力してもエラーを出さす、コンパイルできます。もちろん、コンパイラには「[警告]」等は表示されません。
(*1)
例外処理
code:6BA
まず1つ目に、Win32プログラミング講座にもあるOPENFILENAMEでABのコンパイラが例外処理(*1)を出しデバッグ側ではアクセス違反となります。
(例)
コード: 全て選択
Dim ofn As OPENFILENAME
Dim buffer[MAX_PATH-1] As Byte
'ファイル名を取得
ofn.lStructSize=76
ofn.hwndOwner=hMainWnd
ofn.lpstrFilter=Ex"ファイル\0*\0\0"
ofn.nFilterIndex=1
ofn.nMaxFile=MAX_PATH
ofn.lpstrFile=buffer
GetOpenFileName(ofn)
ちなみに、デバッグコンパイルでは上のようになりますが、リリースコンパイルをした方のプログラムでは、正常に動作します。
2つ目に、構造体を宣言する「Type」で以下のように関数の前に全角のスペースがあると、ABが動作を停止します。
(例)
コード: 全て選択
Type SHQUERYRBINFO
cdSize As Long
i64Size As Int64
i64NumItems As Int64
End Type
もちろん、コンパイルをするとエラーを出しますが・・・
まぁ、この原因はユーザ側なので、すべてがABのせいではありませんが…
それと、さっき発見したのですが、AB4.1βの名残?なのか、「#Strict」を入力してもエラーを出さす、コンパイルできます。もちろん、コンパイラには「[警告]」等は表示されません。
(*1)
例外処理
code:6BA