C#からWindows APIを利用したい。
ただし以下の制限で。
- Windows Mobile Classic 6.1
- .NET Compact Framework 2.0
具体的に利用したいのはだいたいこんな関数。
- CreateEvent
- ResetEvent
- SetEvent
どうすればいいか調べてみたらP/Invokeなる仕組みを使うらしい。
ざっくりと以下のようなこと使うためにはするようだ。
- DllImportで対象となるdllを指定
- 呼び出す関数の宣言を記述
例えばCreateEventだとこんな感じ。
[DllImport("Coredll.dll", SetLastError = true)] private static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName);
で、上記のような定義をどう書いたらいいか困ったときは、 http://pinvoke.net を参照するといいかもしれない。
ただ、Windows Mobileゆえか不明だけど、kernel32.dllではなく、Coredll.dllを指定する必要があった。