• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WinsockコントロールのErrorイベントでオーバーフロー)

WinsockコントロールのErrorイベントでオーバーフロー

このQ&Aのポイント
  • VisualVasic 6.0 Professional Edition (SP 5)を使用しています。WinsockコントロールのErrorイベントに関する質問です。エラーコードの設定値でオーバーフローしてしまう問題が発生しています。対策方法を教えてください。
  • VisualVasic 6.0 Professional Edition (SP 5)を使用しています。WinsockコントロールのErrorイベントで起きるオーバーフローの問題について質問です。エラーコードの設定値がオーバーフローしてしまうため、正しい処理ができません。対策方法を教えてください。
  • VisualVasic 6.0 Professional Edition (SP 5)を使用しています。WinsockコントロールのErrorイベントで起こるオーバーフローに関する質問です。エラーコードが正しく渡されないことにより、プロトコルや接続の状態が正しく判断できません。どのような対策をすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

たぶん、エラーコードは符号なし2byte整数なのかな それをlong型に変換してやればいいと思います。 Private Sub Winsock1_Error(Number As Integer, (以下略) Select Case UnsignedShort2Long(Number) Case sckBadState End Select End Sub 'Unsigned Shortをlong型に変換 Private Function UnsignedShort2Long(ByVal n As Integer) As Long If (n >= 0) Then UnsignedShort2Long = n Else UnsignedShort2Long = &H8000& + (n And &H7FFF) End If End Function

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#62349
noname#62349
回答No.2

Integer型は、-32,768 ~ 32,767の範囲以外だと オーバーフローします。#1の方がおっしゃるように Long型なら-2,147,483,648 ~ 2,147,483,647まで 大丈夫なのでこれでいけるでしょう。 エラーナンバーは整数値なのでSingle型やDouble型に する必要はありません。

すると、全ての回答が全文表示されます。

関連するQ&A