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

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
淡幻星
記事: 183
登録日時: 2005年7月19日(火) 07:02
お住まい: 宮城県
連絡する:

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

#1 投稿記事 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



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