引数に長い文字列を指定したときの奇妙なエラー

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

引数に長い文字列を指定したときの奇妙なエラー

#1 投稿記事 by hira »

コード: 全て選択

If MessageBox(0,[およそ200バイト以上の文字列],"AucMon",MB_ICONEXCLAMATION Or MB_YESNO)=IDNO Then
	End
End If
↑[およそ200バイトの文字列]には実際にはリテラル文字列が入ります。

これで、なぜか「閉じカッコ ")" の後に不正な文字が含まれています」エラーになり、さらに場合によっては「"MB_YESIDNO" 無効な識別子です」などという意味のわからないエラーまで発生してしまいます。
「200バイト」というのは第3引数の長さなどによっても変わってきますが、上のコードではピッタリ200バイトまではOKで、201バイト以上では上のような奇妙なエラーが発生します。
WindowsXP Home(SP2)、ActiveBasicはVer 5.00.00(CP2) 及び Ver 4.24.00 でこの現象の発生を確認しました。
山本
Site Admin
記事: 535
登録日時: 2005年5月30日(月) 15:08
連絡する:

#2 投稿記事 by 山本 »

こんにちは。山本です。こちらでも200バイト以上の文字列で動作検証を行いましたが、そのような不具合に遭遇することはありませんでした。長さだけでなく、文字列データの性質にも関係がありそうですので、問題が起きる文字列をご指定していただけますでしょうか?

お手数をおかけしてしまいますが、よろしくお願い致します。
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

#3 投稿記事 by hira »

そのときは このコードでエラーになったのですが、今実行するとなぜかうまくいきました。
理由は定かではありませんが、PCの調子が悪かっただけなのかもしれません。
ご迷惑をおかけしました。
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

自己レスです

#4 投稿記事 by hira »

先ほどは大きな勘違いをしていまして。
Ifの条件に入れるのを忘れていました。 このコードで「閉じカッコの後に…」というエラーが発生します(当方では確実に発生)。
よろしくお願いします。
※If~End Ifの間にはコードがあってもなくてもエラーになります
山本
Site Admin
記事: 535
登録日時: 2005年5月30日(月) 15:08
連絡する:

#5 投稿記事 by 山本 »

詳細のご報告、ありがとうございます。こちらでも再現できました。原因もわかりましたので、次回のバージョンアップで修正させてもらいます。
返信する