ページ 1 / 1
コメント中の文字に因り、処理過程に影響を及ぼす
Posted: 2011年6月19日(日) 18:12
by ベーやん
何時も、お世話に成っています。
行単位での注釈中に"/*"を入れたら以降のプロシージャの名前が認識されない。
但し、"*/ ~ /*"を対で使用する場合は、この限りでない!!
宜しくお願いします。
複数行に渡るコメント
Posted: 2011年6月19日(日) 20:06
by たかせ
/*を検出した時、*/が見つかるまでのすべてがコメントアウトとみなされます。
だから上記の結果になって当然です。
ABのヘルプに以下の記載がありますのでご確認下さい。
複数行に渡るコメント
/* ~ */ で囲まれた範囲の文字列は、すべて注釈と見なされます。複数行に渡るコメントアウトも可能です。
/* 注釈文1
注釈文2
注釈文3 */
Print /*コマンド行の途中もコメントアウトできます。*/ "test"
備考
"/*" 及び "*/" は、ネスト構造ではありません。コンパイラは、バッファ中から "/*" を識別すると、"*/" が現れるまでサーチを行います。よって、"/*" と "*/" の間に "/*" や "'" などの注釈記号が含まれていたとしても、それらはコメントアウトの対象と判断されます。
行単位での注釈
Posted: 2011年6月20日(月) 00:45
by ベーやん
件名は、こちらの方が正しいですね。
>/*を検出した時、*/が見つかるまでのすべてがコメントアウトとみなさ>れます。
複数行に渡るコメントの場合は、その通りでしょう。
>ABのヘルプに以下の記載がありますのでご確認下さい。
[行単位での注釈]
「アポストロフィー(')を指定します。改行までが注釈文となります。」
と、在ります。
よって、アポストロフィー(')以降は、如何なる文字やコマンドも処理過程に一切影響を及ぼさないため、注釈文として活用できる筈ですが。
アポストロフィー(')に気が付きませんでした
Posted: 2011年6月20日(月) 12:51
by たかせ
アポストロフィー(')に気が付かなくて大変申し訳ありませんでした。
テストしたところ
●該当箇所の"'ファイル読込(ab_*.sbp/*.txt)"以降のコードがコメントとして認識されているようです。
●だからCommandButton2をクリックしても当然動作しません。
●さらにウインドーを閉じてもウインドーを閉じた時の処理も認識されていないのでプログラムは実行中のままです。タスクマネージャーで確認しました。これは修正してコンパイルしたときに「出力ファイルの書き込みに失敗しました。実行されている可能性があります。」とメッセージが表示され判明したのです。
なので現在の対応として /* */とアポストロフィー(')を隣接した箇所で使用しないほうがよいと思います。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
/'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
' イベントプロシージャの呼び出しを行います。
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub MainWnd_CommandButton1_Click()
SetDlgItemText(hMainWnd,EditBox1,"CommandButton1_Click!")
'ファイル読込(ab_*.sbp/*.txt)
End Sub
Sub MainWnd_CommandButton2_Click()
SetDlgItemText(hMainWnd,EditBox1,"CommandButton2_Click!")
End Sub
Sub MainWnd_Destroy()
TEST_DestroyObjects()
PostQuitMessage(0)
End Sub
●2011年06月21日(火) 記事を修正しました。