ios — вызов функции Objective C из C ++ в приложении для iPhone

У меня есть кусок кода, написанный на C ++, который является кросс-платформенным и использует OpenCV.

Мой код C ++ выполняет некоторую обработку при вводе изображения.

Я хочу использовать AVFoundation в iOS для декодирования видео и отправки данных на C ++ для обработки.

Я могу найти много учебников, которые позволяют мне запускать код C ++ в моем приложении, но мне нужно вызвать функцию Objective-C из C ++, которая будет запрашивать следующий кадр видео.

Пожалуйста помоги.

Да, и я знаю, что в OpenCV есть класс VideoReader, но мне нужна собственная реализация.

0

Решение

Самый простой способ — просто изменить myFile.cpp на myFile.mm. Затем компилятор интерпретирует это как Objective-C ++, и вы можете импортировать AVFoundation в файл .mm и использовать Objective-C.

1

Другие решения

Вызовы сообщений Objective C преобразуются компилятором в вызовы библиотеки времени выполнения — для вызовов сообщений обратитесь к objc_msgSend, Вы можете вызвать эту функцию времени выполнения вручную из своего кода C ++.

Objective-C Runtime Руководство по программированию / Обмен сообщениями

Еще одним, и, возможно, более простым способом было бы перенести части C ++ на Objective-C ++.

0

По вопросам рекламы [email protected]