コールバック関数は次の書式になります。関数名は任意です。
public int CallBackProc(short Id, short Message, int wParam, int lParam, void *Param);
ポインタを扱うメソッドの場合、unsafe キーワードが必要になります。
作成されたコールバックルーチンに、unsafe キーワードを追加してください。
unsafe public int CallBackProc(short
Id, short Message, int wParam, int lParam, void *Param)
{
・
・
・
Visual C#で関数ポインタを扱うには、デリゲートを使用します。
各コールバックルーチン用のデリゲート宣言は、clogger_api.csファイル中に記述されています。
イベント通知 |
PLOGGEREVENTCALLBACK |
コールバック関数の登録
コールバック関数の登録には以下の関数を使用します。
イベント通知 |
LoggerSetNotifyEvent |
コールバック関数登録の流れ
・デリゲートの初期化
・ガベージコレクション対策のため、割り込み処理用デリゲートに対するGCHandleを取得
・割り込み処理用デリゲートの固定ポインタを取得
・取得した固定ポインタを LoggerSetNotifyEvent関数で登録
・割り込み処理用デリゲートに対するGCHandleが必要なくなった時点で解放(アプリケーション終了時など)
これらの具体的なコーディング内容につきましては、サンプルプログラムおよび、Visual C# 使用時の注意点をご参照ください。