OpenCV Fehler beim Debug in VS2010

Gast #3031419
Lesenswert?

Hallo,

hoffe mal das mir jemand helfen kann.
Ich will ein Projekt mit Hilfe der Bibliothek OpenCV realisieren
und habe OpenCV mit Hilfe dieses Tutorial eingepflegt:
www.youtube.com/watch?v=cgo0UitHfp8

Und auch das Testprogramm des Tutorial kopiert.
Code folgt weiter unten.

Nun die Frage, beim debuggen bekomme ich folgeende Ausgaben:


"New_OpenCV.exe": "C:\Users\....\Documents\Visual Studio 
2010\Projects\New_OpenCV\Debug\New_OpenCV.exe" geladen, Symbole wurden 
geladen.
"New_OpenCV.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find 
or open the PDB file
"New_OpenCV.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot 
find or open the PDB file
"New_OpenCV.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot 
find or open the PDB file
Das Programm "[4728] New_OpenCV.exe: Systemeigen" wurde mit Code 
-1073741701 (0xc000007b) beendet.


kann mir jemand vielleicht sagen was der Fehler ist?



Der Code:

#include<opencv\cv.h>
#include<opencv\highgui.h>

using namespace cv;

int main(){

  //create matrix to store image

  Mat image;

  //initialize capture

  VideoCapture cap;
  cap.open(0);

  //create window to show the image

  namedWindow("window", 1);

  while(1){

    //copy webcam stream to image

    cap>>image;

    //print image to screen

    imshow("window", image);

    //delay between frames

    waitKey(33);

  }
  return 0;
}
Persönliche Seite #3031467
Lesenswert?

Die Hinweise auf die nicht gefundenden PDB-Dateien sind nur Hinweise, 
keine Fehlermeldung. Das bedeutet nur, daß für die genannten DLLs keine 
Debugsymbole verfügbar sind.

Lässt Du das Programm denn im Debugger einfach durchlaufen, oder gibts 
das beim Versuch des Single-Step?

Hast Du das als natives C++-Programm übersetzt, oder etwa mit der 
MS-Perversion "C++/CLI"?
Persönliche Seite #3031649
Lesenswert?

Manuel Volk schrieb:
> Ich habe das einfach so wie es ist im Debug durchlaufen lassen ohne
> Single-Step.

Naja, Du könntest ja mal in irgendeine Zeile einen Breakpoint setzen und 
sehen, ob das Programm da vorbeikommt.

Manuel Volk schrieb:
> Die Zweite Frage verstehe ich nicht so ganz.

Ich sehe mir das Video nicht an. Visual Studio enthält mehrere Compiler, 
einen echten C/C++-Compiler und einen Compiler für die .Net-"Sprache" 
namens "C++/CLI" bzw. "Managed C++". Beim Einrichten eines Projektes 
wählt man aus, welcher Compiler verwendet wird - und das solltest Du 
wissen, was Du da gemacht hast.
Persönliche Seite #3031705
Lesenswert?

Das stellt man nicht nachträglich um, das richtet man beim Erstellen 
eines neuen Projektes ein.

Ob das mit Deinem Problem zu tun haben kann, weiß ich nicht, aber es ist 
ein ganz erheblicher Unterschied.

Hast Du Dich denn jetzt mal mit dem ersten Teil beschäftigt?

Dein Programm scheint in keiner Weise zu überprüfen, ob die 
verschiedenen angelegten Objekte überhaupt funktionieren bzw. gültig 
sind; würdest Du Dir die Objekte im Debugger ansehen bzw. mit dem 
Debugger in den zugehörigen Code bei der Erstellung steppen, könntest Du 
herausfinden, wo das Problem liegt.

Ich vermute, daß weder

  cap.open(0);

noch

  namedWindow("window", 1);

funktionieren.
Gast #3031731
Lesenswert?

Manuel Volk schrieb:
> Das Programm "[4728] New_OpenCV.exe: Systemeigen" wurde mit Code
> -1073741701 (0xc000007b) beendet.

Da ist doch ein konkreter Fehlercode. Dummerweise scheint der viele 
Ursachen haben zu können.
Hier scheinen plausible Erklärungen zu stehen:
http://stackoverflow.com/questions/10492037/the-application-was-unable-to-start-correctly-0xc000007b

'The most common cause of this error is trying to load a 64 bit DLL into 
a 32 bit process, or vice versa.'

Hast du die richtigen Libs (64Bit) benutzt?
Gast #3031810
Lesenswert?

Ja genau das hatte ich auch vermutet. Ich lade im bin Verzeichnis der 
Bibliothek die für Version 64, da ich VS2010 64 bit Version installiert 
habe. Die lib lade ich aber in 32, da es ja für 32 bit kompeliert wird 
so weit ich das weiß. Bin halt so vorgegangen wie es im Video 
beschrieben wird. Ist das soweit korrekt oder steckt der Fehler dort 
egent wie?
Gast #3031835
Lesenswert?

habe das gerade nachvollzogen, ist genau so. Habe auch den Suchpfad auf 
X64\bin gesetzt und bekomme dann den Fehler wie bei dir wenn ich die 
32Bit App erstelle und starte. Den Suchpfad auf X86 umgeschaltet, VS neu 
starten und es läuft. Es kann noch einen Fehler geben wenn das 
VideoCapture Device nicht geöffnet werden kann, das Beispiel verzichtet 
ja auf jegliche Fehlerbehandlung.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren