CMOS カメラから画像を取得するライブラリの使用に小さな問題があります。ライブラリではストリーム機能の使用が許可されており、画像を取得するとき、画像がドロップされたとき、およびエラーが発生したときに設定する 3 つのアクセス ポイント (3 つのデリゲート) があります。
typedef void(* StreamCallbackPtr)( IMAGE *image );
typedef void(* StreamErrorCallbackPtr)();
typedef void(* StreamFrameDroppedCallbackPtr)();
int Stream_Start( DEVICE device, IMAGEFORMAT format, StreamCallbackPtr stream_callback, StreamFrameDroppedCallbackPtr f_dropped_callback, StreamErrorCallbackPtr error_callback );
カメラで画像の準備が整うとすぐに StreamCallbackPtr に入りますが、ライブラリ コードを変更する方法がないことに注意してください。
ここに質問があります: C++ で自分のデリゲートをプラグインするにはどうすればよいですか? クラス内でこのストリーム機能を使用するとします。少なくとも 2 つのオプションがあることがわかっています。ラッパー、およびグローバル変数。以外のものを渡すことができないため、最初のものは危険にさらされているようでありIMAGE
、グローバル変数の使用を避けたい (この場合は静的メンバーになります)。
何か案は ?