cannot convert parameter 1 from 'cli::interior_ptr<Typ>' zu 'CvCapture **'
Ich bin Aufnahme eines video-frame wie folgt
CvCapture *capture = cvCreateFileCapture("PATH");
Lesen kann ich die video-und verarbeiten. Alles funktioniert einwandfrei. Aber wenn ich versuche die Freigabe der capture -
cvReleaseCapture( &capture );
Bekomme ich
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
Die Funktion innerhalb einer Klasse.
public ref class Locator
und ich rufe es von den wichtigsten
Locator r;
Bevor ich ihn Hinzugefügt *öffentlichen ref * zu Klasse locator es war nicht, dass Sie mir eventuelle Fehler.
Ideen für die Befestigung? Es war in Ordnung arbeiten, vor dem Wechsel zu c++-cli.
Ich denke, es ist mit einigen heap-problem, Objekte auf den heap verschoben werden können, die als Ergebnis die garbage-collection. Um einen Zeiger auf eine native Methode/Funktion, die Sie brauchen, um "pin" der Mauszeiger für die Dauer des Gesprächs, aber ich weiß nicht, wie.
Dank.
Aktualisiert:
Dass es behoben.
pin_ptr<CvCapture*> p;
p = &capture;
cvReleaseCapture( p );
- Müssen Sie rufen Sie
Marshal::FreeHGlobal
zu reinigen, bis die Zeichenfolge, die StringToHGlobalAnsi erstellt. Finden Sie diese Antwort für Beispiel-code: stackoverflow.com/a/5667246/480937 - Wie wirkt sich das auf capture?
- Ich bearbeitet die Frage, denn auch wenn ich ihm den Pfad direkt ein, es gibt mir immer noch den gleichen Fehler
- Es hat keinen Einfluss auf Aufnahme, so dass ich nicht geben Sie es als eine Antwort, aber es ist ein Speicher-Leck, das wirkt sich auf Ihr Programm.
- Ok, danke. Ich reparier das Leck.
- Haben Sie versucht, pin_ptr? So etwas wie
pin_ptr<CvCapture> pCapture = &capture
- pin_ptr sieht aus wie die richtige Lösung, ich denke, es sollte pin_ptr<CvCapture*>
- Dass es behoben. Danke. Aber ich wünschte, ich sah Ihre Antwort, bevor Sie dazu führen, dass ich fixiert auf meine eigene, aber danke.
- Ja, Sie sind richtig, die
pin_ptr<CvCapture*>
erforderlich ist. - es scheint, dass Sie sollten hinzufügen, dass der Tipp als eine Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Hinzufügen als Antwort, Dank @AlexFarber für die Korrektur)
Haben Sie versucht, pin_ptr? So etwas wie: