QWord型が絡む(?)String型のアクセス違反

返信する


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

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

トピックのレビュー
   

展開ビュー トピックのレビュー: QWord型が絡む(?)String型のアクセス違反

by 山本 » 2006年10月26日(木) 17:59

hira さんが書きました:

コード: 全て選択

Function Func(Num As QWord) As String
	Func=Chr$((Num+96) As Byte)
End Function

Dim a As String
a=Func(1)
このコードで、string.sbpのAllocStringBuffer内でアクセス違反となってしまいます。
しかし、Funcの引数をDWordにした場合は期待通りの結果で正常終了します。
また、引数がQWordのままでも、Chr$関数の引数をキャストしない場合は(警告は出ますが)正しく動作しています。
ActiveBasic 5.00.00(CP3)で確認。調査をお願いします。
ご報告ありがとうございます。
本来であればアクセス違反にならない処理において、hiraさんの仰る現象が確認できました。
次回のバージョンアップで修正しますので、今しばらくお待ちください。

by hira » 2006年10月22日(日) 21:05

すみません、#strictがあった場合の話です。>警告
ということで現状はキャストを外して回避しています。

追伸

by たかせ » 2006年10月22日(日) 14:59

たかせです。

ちなみにキャストをはずしても警告は出ませんでしたが?

by たかせ » 2006年10月22日(日) 14:57

たかせです。

上記のソースで確認したらアクセス違反となってしまいます。

ちなみにキャストをかけなければ正常に終了しました

   Func=Chr$((Num+96) As Byte)
            ↓
   Func=Chr$((Num+96))

原因はよくわかりせんがとりあえずキャストをはずしてみてはいかがでしょうか?

QWord型が絡む(?)String型のアクセス違反

by hira » 2006年10月19日(木) 14:55

コード: 全て選択

Function Func(Num As QWord) As String
	Func=Chr$((Num+96) As Byte)
End Function

Dim a As String
a=Func(1)
このコードで、string.sbpのAllocStringBuffer内でアクセス違反となってしまいます。
しかし、Funcの引数をDWordにした場合は期待通りの結果で正常終了します。
また、引数がQWordのままでも、Chr$関数の引数をキャストしない場合は(警告は出ますが)正しく動作しています。
ActiveBasic 5.00.00(CP3)で確認。調査をお願いします。

ページトップ