Visual C#

コールバックルーチンの作成

コールバック関数の作成

コールバック関数は次の書式になります。関数名は任意です。

public void CallBackProc(short Id, int wParam, int lParam, void *Param);

ポインタを扱うメソッドの場合、unsafe キーワードが必要になります。
作成されたコールバックルーチンに、unsafe キーワードを追加してください。

unsafe public void CallBackProc(short Id, int wParam, int lParam, void *Param)
{


デリゲートの使用

Visual C#で関数ポインタを扱うには、デリゲートを使用します。
各コールバックルーチン用のデリゲート宣言は、CcntCs.csファイル中に記述されています。

カウント一致の通知

PCOUNTUPCALLBACK

カウンタエラーの通知

PCOUNTERERRORCALLBACK

キャリー/ボローの通知

PCARRYBORROWCALLBACK

タイマーの通知

PTIMERCALLBACK

サンプリング停止の通知

PSAMPLINGSTOPCALLBACK

指定個数サンプリング完了の通知

PSAMPLINGCOUNTCALLBACK

コールバック関数の登録

コールバック関数の登録には以下の関数を使用します。

カウント一致の通知

CntCountUpCallbackProc

カウンタエラーの通知

CntCounterErrorCallbackProc

キャリー/ボローの通知

CntCarryBorrowCallbackProc

タイマーの通知

CntTimerCallbackProc

サンプリング停止の通知

CntSamplingStopCallbackProc

指定個数サンプリング完了の通知

CntSamplingCountCallbackProc

コールバック関数登録の流れ

・デリゲートの初期化
・ガベージコレクション対策のため、割り込み処理用デリゲートに対するGCHandleを取得
・割り込み処理用デリゲートの固定ポインタを取得
・取得した固定ポインタを CntCountUpCallbackProc関数等のコールバック関数登録用関数で登録
・割り込み処理用デリゲートに対するGCHandleが必要なくなった時点で解放(アプリケーション終了時など)

これらの具体的なコーディング内容につきましては、サンプルプログラムおよび、
Visual C# 使用時の注意点
をご参照ください。