掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB6 MSCommでCOM3以降を使うと出る「実行時エラー 9」の回避策は? (ID:88153)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
みなさん、ありがとうございます。 ひろあきさんがおっしゃっているように、 >ポーリングならInBufferCount < 3の間はループするようにするといいでしょう。 としていますが、USBから変換するとNGです。 >ここにブレークポイントいれて本当にRxBuffが配列になったかを確かめた? と言われ、きちんとデバッグしていないことに気づき、今日ブレークポイントを入れてデバッグしてみました。 すると、ステップで実行するとエラーが出ませんでした。 確認すると、InbufferCount < 2 としていました。 念のため、InbufferCount < 3 でループを抜けた後、RxBuff = MSComm1.Inputの直前に、For〜Nextを入れてウエイトさせました。 ところが、"11001010"/"xxxxxxxx"/"xxxxxxxx"と3バイトを返して来るはずなんですが、 "00000000"/"11001010"/"xxxxxxxx"/"xxxxxxxx"と、4バイトがRxBuffに入っていました。 COM1ではこんな現象は起こっていませんでした。 そこで、COM1の場合とCOM3以降の場合で、RxBuffの配列を変えるようにして、 COM3以降の場合はRxBuff(0)を捨てるようにしました。 一応、これで希望の動作をさせることが出来ました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.