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

返信する


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

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

トピックのレビュー
   

展開ビュー トピックのレビュー: DLL内で64bit整数をキャストするとアクセス違反

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

by 淡幻星 » 2006年6月24日(土) 16:01

いつもお世話になっております。

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


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



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

ページトップ