ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
-
hira
- 記事: 203
- 登録日時: 2005年5月31日(火) 20:14
- お住まい: 兵庫県
-
連絡する:
#1
投稿記事
by 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)で確認。調査をお願いします。
-
たかせ
- 記事: 215
- 登録日時: 2006年2月05日(日) 17:10
- お住まい: 東京都
#2
投稿記事
by たかせ »
たかせです。
上記のソースで確認したらアクセス違反となってしまいます。
ちなみにキャストをかけなければ正常に終了しました
Func=Chr$((Num+96) As Byte)
↓
Func=Chr$((Num+96))
原因はよくわかりせんがとりあえずキャストをはずしてみてはいかがでしょうか?
-
たかせ
- 記事: 215
- 登録日時: 2006年2月05日(日) 17:10
- お住まい: 東京都
#3
投稿記事
by たかせ »
たかせです。
ちなみにキャストをはずしても警告は出ませんでしたが?
-
hira
- 記事: 203
- 登録日時: 2005年5月31日(火) 20:14
- お住まい: 兵庫県
-
連絡する:
#4
投稿記事
by hira »
すみません、#strictがあった場合の話です。>警告
ということで現状はキャストを外して回避しています。
-
山本
- Site Admin
- 記事: 535
- 登録日時: 2005年5月30日(月) 15:08
-
連絡する:
#5
投稿記事
by 山本 »
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さんの仰る現象が確認できました。
次回のバージョンアップで修正しますので、今しばらくお待ちください。