Ошибка MarshalDirectiveException при использовании dll opencv для единстваC++

Программы на C++. Форум разработчиков
Anonymous
Ошибка MarshalDirectiveException при использовании dll opencv для единства

Сообщение Anonymous »

Я пытаюсь заставить Unity показывать RTSP-видео, используя opencv. Я создал собственную dll, используя C++, который использует dll opencv.
Теперь мне нужно использовать dll в единстве для отображения rtsp, но я получаю какую-то странную ошибку.
Есть ли какие-либо решения, чтобы остановить это ошибка?
Если нет, есть ли способ перенести cv::Mat в тип данных unity?
ниже приведена ошибка
MarshalDirectiveException: тип OpenCvSharp.DisposableObject, который передается в неуправляемый код, должен иметь атрибут StructLayout.
Мой код для C#:

Код: Выделить всё

    [DllImport("OpenCVDll")]
private static extern void PlayRTSP(ref Mat rawImage, IntPtr rtspLink);
Код для C++:

Код: Выделить всё

extern "C" __declspec(dllexport) void PlayRTSP(cv::Mat rawImage, LPCSTR rtspLink){}
Пытался использовать OpenCVSharp, что вызвало ошибку.
Почему Unity не поддерживает rtsp?.......Очень нужна эта поддержка плохо :(

Подробнее здесь: https://stackoverflow.com/questions/786 ... -for-unity

Вернуться в «C++»