AB3.Xの頃は動いたので、バグだと思うのでここに書きます。
コード: 全て選択
Sub NowTime()
Dim Msg As BytePtr
Dim T As SYSTEMTIME
Dim a As Long
GetLocalTime(T)
Msg=calloc(100)
lstrcpy(Msg,"今日は")
' a=T.wDayOfWeek' |
' Select Case a' |---------この2行と
Select Case T.wDayOfWeek'--この行のコメントアウトを入れ替ると正しく動きます。
Case 0
lstrcat(Msg,"(日)")
Case 1
lstrcat(Msg,"(月)")
Case 2
lstrcat(Msg,"(火)")
Case 3
lstrcat(Msg,"(水)")
Case 4
lstrcat(Msg,"(木)")
Case 5
lstrcat(Msg,"(金)")
Case 6
lstrcat(Msg,"(土)")
' Case Else
' lstrcat(Msg,"(?)")
End Select
lstrcat(Msg,"です。")
MessageBox(0,Msg,"今日の曜日",MB_OK+MB_ICONASTERISK)
free(Msg)
End Sub '正常に関数を抜けることができません。
NowTime()
End
通常の変数に代入してやるときちんと動きます。
Case Else を入れるとまた違った動作をします。
それと、Selectがきちんと動作しなかった時はEndSubの時にアクセス違反を起こします。が、それがどこかよく分かりません。
よろしくお願いします。
XP SP1,256MBでエラー発生確認です。