ab.com コミュニティ
https://www.activebasic.com/forum/

MessageBoxで改行を表現しようとするとアクセス違反
https://www.activebasic.com/forum/viewtopic.php?t=1753
ページ 11

作成者:  ganas [ 2007年1月07日(日) 11:58 ]
記事の件名:  MessageBoxで改行を表現しようとするとアクセス違反

こんにちは。
諸事情で抜粋ですが、以下のコードでバグ(アクセス違反)が発生します。
コード:
MessageBox(hMainWnd,"ItemTextLen の値が不正です。" + Chr$(13) + Chr$(10) + Chr$(13) + Chr$(10) + "処理に関するエラーか不正操作が行われた可能性があります。","予期せぬエラー",MB_ICONSTOP)
なお、これをほかの行へ移して実行した場合も、ここで動作が止まるので、バグとして報告しました。確認した限りだと、MsgBoxだと何も起こりません。

またエラーメッセージも載せておきます。
コード:
スレッド(&H474)でアクセス違反がありました(EPI=&H77D0204F)。
そして、もうひとつは、Msgboxはカッコ()をつけると(表記)エラーと認識し、MessageBoxはカッコをつけないと(表記)エラーとなるようですが、これは仕様ですか?

作成者:  konisi [ 2007年1月07日(日) 12:03 ]
記事の件名: 

おそらく、LPStr+StringClassの組み合わせがまずいのでしょう。

次のように書けばエラーは出ません。
コード:
MessageBox(hMainWnd,Ex"ItemTextLen の値が不正です。\r\n\r\n処理に関するエラーか不正操作が行われた可能性があります。","予期せぬエラー",MB_ICONSTOP)

追記:ところで、EPIってEIPの間違いでしょうか?

作成者:  ganas [ 2007年1月07日(日) 13:53 ]
記事の件名: 

ありがとうございます。うまくいきました。

山本さんが見ているなら、ちょっと要望として出したいのですが、ヘルプの説明で、Chr$関数の組み合わせで改行できます、とだけあからさまに書いてあるだけだと、MessageBoxの時にExをつけるという説明がMessageBoxにもないので、ちょっと困惑するところがあると思うのです・・・。

作成者:  7 [ 2007年1月07日(日) 16:06 ]
記事の件名: 

> 山本さんが見ているなら、ちょっと要望として出したいのですが、ヘルプの説明で、Chr$関数の組み合わせで改行できます、とだけあからさまに書いてあるだけだと、MessageBoxの時にExをつけるという説明がMessageBoxにもないので、ちょっと困惑するところがあると思うのです・・・。
???
「Ex 表記による文字列」という項目がヘルプにありますけど...?。

作成者:  ganas [ 2007年1月07日(日) 16:19 ]
記事の件名: 

変な書き方になってしまってすいません。
言いたかったことは、ヘルプにあるMessageBox関数の説明を見ただけでは、改行方法にExを使った方法がわからないということです(MsgBox関数の説明でもChr$関数の改行への使い方(あるいは使えるという説明)が載っていないのと同じように)。少なくとも初心者か、あまり熟練していないような私には、改行方法をいちいち聞かなければ作業が進められない、というところがあります(仮にもインターネットに繋げられない人には使い方がわからず仕舞いになってしまう恐れがある)。そのため、そのような方法をヘルプに少しずつでも記述するとよいかな、と思っています。

作成者:  konisi [ 2007年1月07日(日) 17:49 ]
記事の件名: 

ヘルプの説明は殆どが随分前に書かれた物なので、過信してはいけません。

当時は、固定文字列も全てString型に直して結合し、BytePtr型として実行するという出鱈目な事をやっていたのでChr$関数を含む文字列でもうまく動いていたのですが、
今はString型はクラス化され、現状として実験段階の部分がかなりあります。
AB5の正式版が出るまでは、AB424か、あるいはもう少し安定しているAB413を使う事を推奨します。

ただ、ヘルプの内容の薄さについてはちょっと困っていますが。

追伸:プログラミングはパズルです。ひとつのピースが合わなかったら別のピースを探す所からはじめましょう。

作成者:  ganas [ 2007年1月07日(日) 18:50 ]
記事の件名: 

ありがとうございました。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/