掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
APIのSetCommStateでStopBitを1にすると必ずエラーになるのを解消するには? (ID:148201)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
コメント文等は、下記にそっくりですね。 http://7ujm.net/VB/VBNetRS232c.html > StopBitに1を入れるとSetCommStateの所で必ずエラーが発生してしまいます。 > 0、1.5、2ではエラーが発生しません。 StopBit というのは、 StopBitsのことでしょうか。 「1 は OK、0/1.5/2 は NG」という質問内容から、4 種の組み合わせを 試そうとしているものと読み取れますが、下記の 3 値しか サポートしていなかったような…? ' System.IO.Ports.StopBits 列挙帯でも代用可能 Const ONESTOPBIT As Byte = 0 '1 ストップビット Const ONE5STOPBITS As Byte = 1 '1.5 ストップビット Const TWOSTOPBITS As Byte = 2 '2 ストップビット 具体的にはどのようにして値をセットされていますか? Byte 型のフィールドに、非Byte値(1.5 など)を直接代入してはいませんか? また、「SetCommStateの所で必ずエラーが発生」とのことですが、失敗時に System.Runtime.InteropServices.Marshal.GetLastWin32Error (あるいは Err.LastDLLError)は何を返していますか? > Public fBitFields As Int32 'ビット単位のフィールド定義'See Comments in Win32API.Txt Win32API って、旧VB向けの簡易定義ファイルですよね。 コーディングの補助的に使う分には良いですが、正式な資料として使うべきものでは無いでしょう。 ftp://ftp.microsoft.com/developr/drg/WWLive/broadcas/msdnnews/WIN32API.TXT http://download.microsoft.com/download/7/A/E/7AE13E42-5BDE-42B1-A91E-9BBCD7C9DF83/Win32Api.exe 本来であれば、SDK およびヘッダファイルを参照すべきかと思いますよ。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa363214.aspx > Public Function Connect(ByVal PortName As String, ByVal BaudRate As int32, _ 宣言部が As Int32 ではなく As int32 になっているようですが、もしかして、 実際に使っているコードを貼ったものでは無く、掲示板上で書き起こしたコードですか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.