ページ 11

DLL内で64bit整数をキャストするとアクセス違反

Posted: 2006年6月24日(土) 16:01
by 淡幻星
いつもお世話になっております。

すでにこちらでバグ報告&次回修正の返答が行われているものと
同じ部分が原因だと思いますが、別途分かりにくい発生条件が
ありましたので、報告しておきます。
(同じバグで、苦しんでいる方のために^^;)


QWord型(64bit整数)変数をキャストすると、アクセス違反が起こるようです。
デバッグ時や実行ファイル単体での実行の場合はエラー無く終了しますが、
DLLとして外部から呼び出すと、関数終了部分でアプリケーションエラーになります。

コード: 全て選択

'例
Sub Export Cast()
	Dim qwBuf As QWord
	Dim nBuf As Long

	qwBuf = 316 '21474836
	nBuf = qwBuf As Long 'おそらく、nBufの領域を超えた部分にもアクセスが起こっている。

	MsgBox NULL, Str$(nBuf)
End Sub 'この部分でnBufの解放エラーが起こる。
キャスト(As Long)せずに代入するとエラーはしません(上記記事と一緒の現象)。


動作環境:
 AB Ver4.23(4.24.00でも同様のエラーを確認)。
 Win2000



以上です。
よろしくお願いいたします。