В настоящее время я работаю над проектом OpenCV, в котором я хочу вызвать функцию обратного вызова в main. cpp из другого cpp.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я хочу вызвать Функция Я получаю bad_function_call, потому что функция обратного вызова является нулевым.
Мой главный. cpp выглядит следующим образом:
PointDetection *detect;
detect->houghCallback = [hPublisher] (std::vector<cv::Vec4i> data) {
//do something
};
my PointDetector.hpp, который включается в PointDetector. cpp:
std::function <void (std::vector<cv::Vec4i> data) houghCallback;
Мой PointDetector. cpp, где я вызываю функцию, выглядит следующим образом:
void PointDetector::houghDetectCb(int status, void *userData) {
std::vector<cv::Vec4i> houghPointsResult;
PointDetector *self = static_cast<PointDetector *>(userData); //This includes every variable in the hpp except the houghCallback for some reason
self->houghCallback(houghPointsResult); //This causes the bad_function_call because houghCallback is Null
}
Кто-нибудь знает, можно ли вызвать Callback таким образом?