![]() |
Exception bei capCreateCaptureWindowA...?
Ich benutze folgenden Code, um mit meiner Anwendung auf die bei mir angeschlossene Webcam zuzugreifen:
Delphi-Quellcode:
Funktioniert auch wunderbar, wenn ichs kompiliere und ausm Explorer->Doppelklick starte.
Procedure ConnectWebcam(WebcamIndex: integer);
begin CaptureWindow := capCreateCaptureWindowA('CaptureWindow', WS_CHILD or WS_DISABLED, 0, 0, 0, 0, GetDesktopWindow, 0); isConnected := (CaptureWindow <> 0) and (SendMessage(CaptureWindow, WM_CAP_DRIVER_CONNECT, WebcamIndex, 0) <> 0) end; Das Problem ist, dass die erse Zeile der Prozedur eine "externe Exception C0000008" wirft, solange ich das ganze im Delphi-Umfeld ausführe. Hat irgendwer schonmal ähnliche Probleme gehabt? Danke schonmal, Euer LDer. |
Re: Exception bei capCreateCaptureWindowA...?
Hallo
Wie sieht die Deklaration von capCreateCaptureWindowA aus? Ich habe ![]() |
Re: Exception bei capCreateCaptureWindowA...?
Meine sieht so aus:
Delphi-Quellcode:
Aber mit der Variante in deinem Link:
function capCreateCaptureWindowA(lpszWindowName: PChar; dwStyle: dword;
x, y, nWidth, nHeight: word; ParentWin: dword; nId: word): dword; stdcall external 'AVICAP32.DLL';
Delphi-Quellcode:
Ist es das Gleiche...
function capCreateCaptureWindow(lpszWindowName: LPCSTR;
dwStyle: DWORD; x, y, nWidth, nHeight: integer; hwndParent: HWND; nID: integer): HWND; stdcall; external 'AVICAP32.DLL' name 'capCreateCaptureWindowA'; Kann's an meiner DLL-Version liegen? Könnt'st'e deine vllt. mal anhängen? LDer. |
Re: Exception bei capCreateCaptureWindowA...?
Mit einer "neuen" AVICAP32 von dll-files.com besteht das gleiche Problem...
|
Re: Exception bei capCreateCaptureWindowA...?
Hab eigentlich nur ICH ständig unlösbare Probleme oder ist das hier normal? :freak:
|
Re: Exception bei capCreateCaptureWindowA...?
![]() Zitat:
Edit: Ich hab nach ein wenig Lesen nur noch heraus bekommen, dass dieser Fehler in zwei Zusammenhängen aufgetaucht ist: 1) Bei Verwendung korumpierter Thread-Handles (war ein C++ Problem) 2) Bei ActiveX/COM Objekten. Insbesondere gab es einen Fall, in dem ein in VB geschriebenes ActiveX in Delphi benutzt o.g. Fehler hervorgerufen hat, in einem VB Programm hingegen nicht. Ich vermute stark, dass hier auf Umwegen irgendwo auf ein COM/AX zugegriffen wird, und dieses dann knallt. D.h. die DLL selbst muss nicht einmal schuld sein, auch dein Programm nicht unbedingt. Eine besonders schöne Aussicht ist das nun aber auch wieder nicht :? Edit2: Und noch was falls es hilft: Der "Klartext" zu dem Errorcode scheint "STATUS_INVALID_HANDLE" zu sein. Fall 1 von oben spricht dafür, aber auch in COM wird viel mit Handles umher geworfen. Leider recht unspezifisch so. ![]() |
Re: Exception bei capCreateCaptureWindowA...?
Edit3: Lösung!
Bzw. Workaround, aber da die Funktionalität ja gegeben ist, kannst du so wenigstens wieder debuggen. Menü: Tools -> Debugger Optionen -> Reiter: BS Exceptions -> In der Liste "Ungültiges Handle ($C0000008)" auswählen -> Mit den Radioboxen mal rumspielen welches davon das Anhalten verhindert. Unter non-D7 heissen die Optionen evtl. etwas anders. Aus ![]() (Sorry für's "Push-Posten", das Edit kam 3 mal nicht durch.) |
Re: Exception bei capCreateCaptureWindowA...?
WOW
vielen dank, Da hatte ich auch schon gesucht aber nix gefunden x) Dankeeeeeeee!!!!! *freu* LDer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz