0

使用 opencv 库,有时我需要注册一个回调。据我所知和经验,C++ 回调不会“看到”全局变量,这意味着参数必须作为指针传递。

臭名昭著的回调:由函数void onMouseMoved(int event, int i, int j, int flags, void* param)触发。setMouseCallback因为我需要传递几个变量,所以我将它们包装在一个结构中。在将此结构传递给 之前setMouseCallback,一切都很好,我可以访问它的任何字段,但在另一端,任何访问 fieds 的尝试都会导致此错误:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

我不知道为什么。换句话说,如何正确传递几个信息?

4

0 回答 0