Visual Basic .NETでご使用の際の注意点

Visual Basic .NET

関数仕様

従来と同じWIN32API形式の関数が使えます。Visual Basic .NET専用の関数はありません。

関数引数、戻り値

関数引数、戻り値の内容はご使用になる開発言語に依存せず共通になります。
詳細は各ドライバーの関数リファレンスを参照下さい。

関数リファレンスの書式について

書式欄の「VB」はVisual Basic 5、6の書式を表します。
Visual Basic .NETからは以前のバージョンとは型宣言が大きく変わりました。
その為、書式の引数の型は、サンプルプログラムにある関数宣言を参照してください。

型宣言の変更例
Visual Basic 5,6     Visual Basic .NET
16Bit Integer     → Short
32Bit Long        → Integer
64Bit なし         → Long
Any                  → 固有のデータ型

コールバック関数使用時の注意点

Visual Basic .NETではコールバック関数によるインターバルタイマイベントの通知を行う場合は、
コールバック関数のメモリアドレスを固定するための処理を追加する必要があります。

ここでは、これらの処理のために必要なコード例として、インターバルタイマイベント処理の場合を例として示します。
詳細はサンプルプログラムを参照してください。

■グローバル変数として宣言します。

Dim gCh As GCHandle
Dim pdelegate_func As PTM_INTERVAL_CALLBACK
Dim pfunc As IntPtr

■Loadメソッドの中で割り込み処理用デリゲートを初期化し、ガベージコレクションにより破棄されないように参照を追加。

pdelegate_func = New PTM_INTERVAL_CALLBACK(AddressOf CallBackProc)
gCh = GCHandle.Alloc(pdelegate_func)

■Closedメソッドの中でハンドルを開放します。

gCh.Free()

■関数の固定ポインタを取得します。

pfunc = Marshal.GetFunctionPointerForDelegate(pdelegate_func)

■TimTimerCallBackProcでは取得した固定ポインタを指定します。

Ret = TimTimerCallBackProc(Id, pfunc, Temp)