VisualBasic.NET(VB.NET) 言語での Robot I/O Port 32 DLL V5.4 実装方法



VBでは16bit変数はInteger、32bit変数はLongでしたが、VB.NETではデータ型に変更があり、16bit変数はShort、32bit変数はIntegerに変更されました。
従って変更後の関数宣言は以下のようになります。
      Declare Function SetPrinterPortIOPCAT Lib "Rbtiop32.dll" Alias "_SetPrinterPortIOPCAT@4" (ByVal nBasePort As Short) As Short
      Declare Function SetPrinterPortIOAutoPCAT Lib "Rbtiop32.dll" Alias "_SetPrinterPortIOAutoPCAT@0" () As Short
      Declare Function SetPrinterPortIOAutoPCAT2 Lib "Rbtiop32.dll" Alias "_SetPrinterPortIOAutoPCAT2@0" () As Short
      Declare Function GetCurrentPrinterPortIOPCAT Lib "Rbtiop32.dll" Alias "_GetCurrentPrinterPortIOPCAT@0" () As Short
      Declare Function OutPCAT Lib "Rbtiop32.dll" Alias "_OutPCAT@4" (ByVal nData As Short) As Short
      Declare Function InPCAT Lib "Rbtiop32.dll" Alias "_InPCAT@0" () As Byte
      Declare Function Out8 Lib "Rbtiop32.dll" Alias "_Out8@8" (ByVal nPort As Short, ByVal nData As Byte) As Byte
      Declare Function Out16 Lib "Rbtiop32.dll" Alias "_Out16@8" (ByVal nPort As Short, ByVal nData As Short) As Short
      Declare Function Out32 Lib "Rbtiop32.dll" Alias "_Out32@8" (ByVal nPort As Short, ByVal nData As Integer) As Integer
      Declare Function In8 Lib "Rbtiop32.dll" Alias "_In8@4" (ByVal nPort As Short) As Byte
      Declare Function In16 Lib "Rbtiop32.dll" Alias "_In16@4" (ByVal nPort As Short) As Short
      Declare Function In32 Lib "Rbtiop32.dll" Alias "_In32@4" (ByVal nPort As Short) As Integer
      Declare Function SetupDriver Lib "Rbtiop32.dll" Alias "_SetupDriver@0" () As Short
      Declare Function ShutdownDriver Lib "Rbtiop32.dll" Alias "_ShutdownDriver@0" () As Short
      Declare Function SetDriverStartType Lib "Rbtiop32.dll" Alias "_SetDriverStartType@4" (ByVal nStartType As Integer) As Integer
      Declare Function GetSetupDriverResult Lib "Rbtiop32.dll" Alias "_GetSetupDriverResult@0" () As Short
      Declare Function GetIOFunctionResult Lib "Rbtiop32.dll" Alias "_GetIOFunctionResult@0" () As Integer
      Declare Function GetRestrictionStatus Lib "Rbtiop32.dll" Alias "_GetRestrictionStatus@0" () As Integer
      Declare Function GetPCArchitectureType Lib "Rbtiop32.dll" Alias "_GetPCArchitectureType@0" () As Short
      Declare Function GetDLLVersion Lib "Rbtiop32.dll" Alias "_GetDLLVersion@0" () As Short
      Declare Sub DoDLLVersionDlg Lib "Rbtiop32.dll" Alias "_DoDLLVersionDlg@4" (ByVal hWnd As Integer)
      Declare Sub DoDLLReadmeDlg Lib "Rbtiop32.dll" Alias "_DoDLLReadmeDlg@4" (ByVal hWnd As Integer)
以上をプログラムに加えれば関数が使用できることになります。

[参考]サンプルプログラムSamVBNET.exeの作成法

必要マシン:パラレルポート付PC/AT系またはパラレル増設EXPRESSカードを搭載したPC/AT系
必要言語:VisualBasic.NET(VB.NETのインストールにはWindowsNT4.0SP6以上またはWindows2000SP2以上またはWindowsXPまたはWindowsVistaが必要です)

1 VisualStudio.NETを起動

2 [スタートページ]→[新しいプロジェクト]
プロジェクトの種類:VisualBasic
テンプレート:Windowsアプリケーション
プロジェクト名:SamVBNET
以上でプロジェクト作成

3 Form1.vb[デザイン]にボタンコントロールを追加

4 ボタンコントロールをダブルクリックするとButton1_Clickハンドラが生成される

5 Button1_Clickハンドラにコードを追加し、さらにプログラムに関数宣言を追加する

コードを追加したForm1.vbソースコード

Public Class Form1
    Inherits System.Windows.Forms.Form

    ' VB.NET用関数宣言(必須)です。コピー貼り付けしてご使用下さい。
    Declare Function SetPrinterPortIOPCAT Lib "Rbtiop32.dll" Alias "_SetPrinterPortIOPCAT@4" (ByVal nBasePort As Short) As Short
    Declare Function SetPrinterPortIOAutoPCAT Lib "Rbtiop32.dll" Alias "_SetPrinterPortIOAutoPCAT@0" () As Short
    Declare Function SetPrinterPortIOAutoPCAT2 Lib "Rbtiop32.dll" Alias "_SetPrinterPortIOAutoPCAT2@0" () As Short
    Declare Function GetCurrentPrinterPortIOPCAT Lib "Rbtiop32.dll" Alias "_GetCurrentPrinterPortIOPCAT@0" () As Short
    Declare Function OutPCAT Lib "Rbtiop32.dll" Alias "_OutPCAT@4" (ByVal nData As Short) As Short
    Declare Function InPCAT Lib "Rbtiop32.dll" Alias "_InPCAT@0" () As Byte
    Declare Function Out8 Lib "Rbtiop32.dll" Alias "_Out8@8" (ByVal nPort As Short, ByVal nData As Byte) As Byte
    Declare Function Out16 Lib "Rbtiop32.dll" Alias "_Out16@8" (ByVal nPort As Short, ByVal nData As Short) As Short
    Declare Function Out32 Lib "Rbtiop32.dll" Alias "_Out32@8" (ByVal nPort As Short, ByVal nData As Integer) As Integer
    Declare Function In8 Lib "Rbtiop32.dll" Alias "_In8@4" (ByVal nPort As Short) As Byte
    Declare Function In16 Lib "Rbtiop32.dll" Alias "_In16@4" (ByVal nPort As Short) As Short
    Declare Function In32 Lib "Rbtiop32.dll" Alias "_In32@4" (ByVal nPort As Short) As Integer
    Declare Function SetupDriver Lib "Rbtiop32.dll" Alias "_SetupDriver@0" () As Short
    Declare Function ShutdownDriver Lib "Rbtiop32.dll" Alias "_ShutdownDriver@0" () As Short
    Declare Function SetDriverStartType Lib "Rbtiop32.dll" Alias "_SetDriverStartType@4" (ByVal nStartType As Integer) As Integer
    Declare Function GetSetupDriverResult Lib "Rbtiop32.dll" Alias "_GetSetupDriverResult@0" () As Short
    Declare Function GetIOFunctionResult Lib "Rbtiop32.dll" Alias "_GetIOFunctionResult@0" () As Integer
    Declare Function GetRestrictionStatus Lib "Rbtiop32.dll" Alias "_GetRestrictionStatus@0" () As Integer
    Declare Function GetPCArchitectureType Lib "Rbtiop32.dll" Alias "_GetPCArchitectureType@0" () As Short
    Declare Function GetDLLVersion Lib "Rbtiop32.dll" Alias "_GetDLLVersion@0" () As Short
    Declare Sub DoDLLVersionDlg Lib "Rbtiop32.dll" Alias "_DoDLLVersionDlg@4" (ByVal hWnd As Integer)
    Declare Sub DoDLLReadmeDlg Lib "Rbtiop32.dll" Alias "_DoDLLReadmeDlg@4" (ByVal hWnd As Integer)

#Region " Windows フォーム デザイナで生成されたコード "

    Public Sub New()
        MyBase.New()

        ' この呼び出しは Windows フォーム デザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後に初期化を追加します。

    End Sub

    ' Form は dispose をオーバーライドしてコンポーネント一覧を消去します。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' Windows フォーム デザイナで必要です。
    Private components As System.ComponentModel.IContainer

    ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。
    ' Windows フォーム デザイナを使って変更してください。  
    ' コード エディタは使用しないでください。
    Friend WithEvents Button1 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(104, 112)
        Me.Button1.Name = "Button1"
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "実行"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 12)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim nAbcde As Byte
        SetPrinterPortIOAutoPCAT2()
        ' 制御例
        ' パラレルポートのpin1をON
        OutPCAT(1)
        ' パラレルポートから入力
        nAbcde = InPCAT()

    End Sub
End Class
6 ビルドする

7 Rbtiop32.dllをシステムフォルダ(Windows2000/NTデフォルトは\WINNT\system32、WindowsVista/XP/98デフォルトは\Windows\system32、64bit版Windowsデフォルトは\Windows\SysWOW64)に置く。

8 Rbt32W64.sysをシステムフォルダ(Windows2000/NTデフォルトは\WINNT\system32、WindowsVista/XPデフォルトは\Windows\system32)に置く。




当Webページ記述の会社名・商品名は各社の商標です。

当Webページの内容によって生じたいかなる損害についても、当方は責任を負いかねます。各自自己責任の下行って下さい。

To home
Copyright(C)2009 Bunkei Den (電 文軽)