我在使用从 CMOS 相机获取图像的库时遇到了一个小问题。该库允许使用流功能,并且当我获取图像、删除图像以及出现错误时,我可以设置三个访问点(三个委托)。
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++ 中?假设我在一个类中使用这个流功能,我知道我至少有两个选择;包装器和全局变量。第一个似乎受到影响,因为我不能传递除 之外的任何东西IMAGE
,并且我想避免使用全局变量(在这种情况下它将是静态成员)。
有任何想法吗 ?