|
コールバックってのはこの場合 ・初期化時点でライブラリ関数に自作関数への関数ポインタ( C# 的には delegate )を渡すと ・特定条件が成立したとき (たとえば Plug&Play イベント成立時) ・その自作関数が DLL の内部にある関数や Windows 自体から呼ばれる ってこと。 つまりその「特定条件」が成立しない間はまったく何もしなくていい=負荷0という便利機構。
C (unmanage) だけ C# (manage) だけならぜひ続けてみようと言うところなんだけど、今回の案件は manage コードである C# の関数を、 unmanage コードである DLL から callback で呼びたい わけで、内容をきっちり理解した上でやらないとはまるパターン。
あとぱっと当該マニュアルなるものを見た時点で ・ C 側が char 使ってる (manage で使うことは微塵も想定していない可能性が大) ・ OEM 文字セットを使っていると書かれている (UNICODE にするには変換が必要) (OEM 文字ってのが電話機にしかない文字の可能性があって Marshaller が使えないかも) # CP932 にあって UNICODE に無い文字ってあったっけ?
とあってオイラだったら手を出さない系の代物だ。
そのライブラリのメーカがまだ公開してないだけで、 メーカ社内には manage コード向けのライブラリがこっそりあるかもしれないよ ということでまずはメーカーに直接問い合わせてみるほうを推奨したい。
|