我正在捕获如下视频帧
CvCapture *capture = cvCreateFileCapture("PATH");
我可以阅读视频并进行处理。一切正常。但是当我尝试释放捕获
cvReleaseCapture( &capture );
我明白了
error C2664: 'cvReleaseCapture' : cannot convert parameter 1 from
'cli::interior_ptr<Type>' to 'CvCapture **'
with
[
Type=CvCapture *
]
Cannot convert a managed type to an unmanaged type
该函数在一个类中。
public ref class Locator
我从主要调用它
定位器 r;
在我将 * public ref *添加到类定位器之前,它没有给我任何错误。
修复它的任何想法?在切换到 c++-cli 之前它工作正常。
我认为这与一些堆问题有关,堆上的项目可以作为垃圾收集的结果移动。为了向本地方法/函数发送指针,您需要在调用期间“固定”指针,但我不知道如何。
谢谢。
更新:
那解决了它。
pin_ptr<CvCapture*> p;
p = &capture;
cvReleaseCapture( p );