VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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型の範囲を超えることはないと思うのですが。

なぜ「オーバーフロー」がでてしまうのでしょうか?

よろしくお願いします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -