お世話になっております。
VB.netで、APIを使用してRS-232Cアプリケーションを作成したいのですが、
何かよいサンプルはありますでしょうか。
Googleで調べて見ましたが、見つかりませんでした。
出来上がったら、アップしますので、ご教授お願い致します。
何か良いサンプル
っていうけれどRS232Cは規約であってそれを利用してどんなアプリケーションをつくりたいの?
利用するだけならここの過去ログは?ちょっと調べてみたけれど特に普通の一件目からサンプルらしきものは見付かるけど何をキーワードにしてさがしたの?
良くわからなかったと言うけれど
それを伝えないとこちらも『何か解って何がわからないのか』がわかりません。
お世話になります。
がんばって一から作っています。
まずは、COMポートをオープンしたいのですが、常に-1が帰ってきてオープンできません。
何が原因でしょうか。
ちなみに、以下のサイトを参考にしました。
http://speana-1.hp.infoseek.co.jp/vb/vb_2/vb_2.htm
以下、ソースです。ご教授お願い致します。
Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" _
(ByVal lpFileName As String, ByVal dwdesiredAccess As Integer, ByVal dwShareMode As Integer, _
ByVal lpSecurityAtributes As Long, ByVal dwCreateDisposition As Integer, _
ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim byteCom1 As Integer
byteCom1 = CreateFile("COM1", &H80000000 Or &H40000000, 0, 0, &H3, 0, 0)
MsgBox(byteCom1)
End Sub
関数呼び出しに失敗したら、GetLastError でエラーコードの確認は必須です。
// GetLastError は System.Runtime.InteropServices 名前空間の Marshal.GetLastWin32Error メソッドで代用できます。
エラーコードからエラーの原因を探ります。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.asp
で、そもそもご使用の PC に COM1 ポートは付いてるんですか?
// レジストリに情報があるはずですが。
ありがとうございます。こういう基本的なところを教えていただけると非常に助かります。
87が返ってきました。
The parameter is incorrect.
パラメータが正しくないようです。
うーんなんでしょう。
調べてみます。
うーむ…:
http://www.atmarkit.co.jp/fdotnet/dotnettips/166pinvoke/pinvoke.html
VB.NETで通信プログラム組んだ事が無いのでよくわかないですが、
Declare Function CreateFile Lib "kernel32.dll" ・・・・(以下省略)
の宣言の「 ByVal lpSecurityAtributes As Long 」は
LongじゃなくてIntegerなのではないだろうか?
VB6ならLongなんでしょうが・・・
IntPtr では?
http://support.microsoft.com/default.aspx?scid=kb;ja;823179
ひでらんさん,ガッさん、まるるうさん
ありがとうございます。ポート開きました。
VB6.0がないので、APIがいけるとこまでがんばってみます。
次のステップへいってきます。
お世話になっております。
http://speana-1.hp.infoseek.co.jp/vb/vb_2/vb_2.htm#createfile
上記のサイトにAPIの実行文として、以下の文がありました。
●実行文の一般形式
dummy = プロシージャ名(API関数) (引数1,引数2,・・・)
ここで使用している、dummy を使うと、vb.netではエラーになってしまいます。
dummy とは何なのでしょうか?
ご教授お願い致します。
dummyは戻値を受ける変数(オブジェクト)であってただの例えだと思いますが
>ここで使用している、dummy を使うと、vb.netではエラーになってしまいます。
dummy以外ではエラーにならないんですか?
また「エラーになってしまいます」だけでは情報が少なすぎます。
どういうタイミング(どの行)でどういうエラーになったかは
提示すべきです。
そもそも、VS.NET 2003 なのでしょうか?
海外ですが・・・
http://www.corradocavalli.cjb.net/
http://www.codeproject.com/dotnet/DotNetComPorts.asp
かなりAPIを熟知してインプリされています。
VS.NET 2005 なら、Portsクラスがあるので、API使わないでも
通信できます。
以上。老婆心ながら・・・
ツイート | ![]() |