fmv*_*ior 5 c++ opencv c++-cli
我按如下方式捕获视频帧
CvCapture *capture = cvCreateFileCapture("PATH");
Run Code Online (Sandbox Code Playgroud)
我可以阅读视频并进行处理.一切正常.但是当我尝试释放捕获时
cvReleaseCapture( &capture );
Run Code Online (Sandbox Code Playgroud)
我明白了
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
Run Code Online (Sandbox Code Playgroud)
该函数在一个类中.
public ref class Locator
Run Code Online (Sandbox Code Playgroud)
我从主要的那个叫它
定位器r;
在我将*public ref*添加到类定位器之前,它没有给我任何错误.
修理它的任何想法?在切换到c ++ - cli之前它工作正常.
我认为它与一些堆问题有关,堆上的项可以由于垃圾收集而移动.为了发送指向本机方法/函数的指针,您需要在调用期间"固定"指针,但我不知道如何.
谢谢.
更新:
修好了.
pin_ptr<CvCapture*> p;
p = &capture;
cvReleaseCapture( p );
Run Code Online (Sandbox Code Playgroud)
Chr*_*s O 12
(添加为答案,感谢@AlexFarber进行更正)
你试过pin_ptr吗?就像是:
pin_ptr<CvCapture*> pCapture = &capture;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6397 次 |
| 最近记录: |