次のようにビデオフレームをキャプチャしています
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 );