投稿日 | : 2005/05/27(Fri) 11:01 |
投稿者 | : KIRIRI |
Eメール | : |
URL | : |
タイトル | : LONG型でのオーバーフローエラー |
いつも参考にさせていただいてます。
VB6で作成しています。
RS232Cでマイコンと通信しています。
マイコンから受け取った2バイト分のデータをLong型の1つの変数へ代入する際にオーバーフローして
しまいます。
'==========標準モジュール変数==========
Public g_Step(4) As Long '受信データ表示用
'==================================
'==========フォーム上のモジュール変数==========
Private m_reData(100) As Byte '受信データの保管先
'==============================================
'引数:受信データの開始位置
Private Sub MonitorDataEdit(strt As Integer)
'◆各チャンネルの受信データを格納
g_Step(0) = m_reData(strt + 3) * &H100 + m_reData(strt + 4)
g_Step(1) = m_reData(strt + 6) * &H100 + m_reData(strt + 7)
g_Step(2) = m_reData(strt + 9) * &H100 + m_reData(strt + 10)
g_Step(3) = m_reData(strt + 12) * &H100 + m_reData(strt + 13)
g_Step(4) = m_reData(strt + 15) * &H100 + m_reData(strt + 16)
Call RBufEdit(strt, strt + 26) '処理済みデータは削除
End Sub
'◆各チャンネルの受信データを格納
の処理でオーバーフローエラーが出てしまいます。
m_reDataはbyte型なので最大値は256。
最大値を考慮して上記の演算を行っても、Long型の範囲を超えることはないと思うのですが。
なぜ「オーバーフロー」がでてしまうのでしょうか?
よろしくお願いします。