capDriverConnect findet Treiber nicht



  • Nein, ich meinte den Rückgabewert der Funktion. Ist der gültig ?

    Mir war der letzte Parameter immer wurscht, der gibt dem Window eine ID, wenn man dem Window Nachrichten schicken will (so verstehe ich das zumindest).



  • Ja, ich denke schon. Also im Debug Modus enthält er eine Zahl. Und wenn ich mit if(hwndVideo) eine Abfrage mache springt er rein.



  • Und im Debug bringt er dann trotzdem den Fehler !?

    Setze mal wie oben den Error-Callback und schau, was er da sagt, bzw. GetLastError sollte eig auch funzen...

    PS: Kamera funktioniert auch anderweitig ??



  • Also ich initialisier die Funktion ja so:

    capSetCallbackOnError(hWnd, ErrorCallbackProc(hWnd,???,?????));
    

    Was muss ich bei den Parametern jeweils angeben? Beim ersten die ErrorID und beim zweiten die Message, aber woher bekomm ich die?



  • Also das sieht dann so aus:

    // ID: Error identification number
    // lpsz: Pointer to a textual description of the returned error.
    LRESULT CALLBACK capErrorCallback(HWND hWnd, int nID, LPCSTR lpsz)
    {
        CString strError;
    
        if (strlen(lpsz) == 0)
            return 1;
    
        strError.Format("AVICap - Error: %s (ID: %d)", lpsz, nID);
        return 0;
    }
    
    ...
    
    capSetCallbackOnError(hWnd, capErrorCallback);
    

    Das steht aber auch alles in der Doku.
    Aber ich will ja mal nicht so sein. 🙂



  • Also bei mir erzeugts keinen Fehler..
    Was nu?



  • Ich frage nochmal: die Webcam funktioniert ?

    Du läufst ja von 0-9 alle Treiber durch, bei welchem Index gibt er dir denn die richtige Beschreibung ? Also welchen Treiberindex hat dein Gerät ?

    Und welchen Sinn hat bei dir denn eig hWndC ??
    Weil ich das nicht ganz verstehe:

    LRESULT CALLBACK WndProc(HWND hWnd, UINT umsg, WPARAM wParam, LPARAM lParam)
    {
        capPreviewRate (hWndC, 33.3);
        capPreview (hWndC, TRUE);
        ....
    


  • Ups, das gehört nicht mehr rein, hatte es vorher anderst versucht gehabt.
    Als "Treiber" erscheint bei mir immer "Microsoft WDM Image Capture". Egal welche Zahl (0-9) ich angebe.

    Und die Kamera funktioniert eigentlich schon, also wenn ich mein normales Programm öffne für die Camera geht sie.



  • Ok, hatte mich nur gewundert.
    Der Treiber sollte stimmen, und der Index 0 auch.
    Wobei man sich den Index geben lässt, wenn man den Namen des Treibers weiß.

    Bei mir springt er in den Error-Callback, wenn ich dort mein Breakpoint setze und die Kamera nicht angesteckt habe. Das sollte also so funktionieren.

    EDIT: Hab jetzt endlich mal Zeit gehabt, es selbst zu testen. Bei mir funktioniert es so, wie du es hast.
    Alle Handles gültig, kann sich mit der Cam verbinden und zeigt die Vorschau an.

    Liegt es vielleicht doch nur am falschen Treiberindex ?



  • Hm.... 😞

    Welches Betriebssystem hast du denn? Ich hab Windows 7.

    EDIT: Hey, jetzt klappts bei mir auch. Hab nochmal paar Sachen rausgelöscht und jetzt scheint es zu funktionieren =).

    Vielen Danke für deine Hilfe!! Und das du nicht aufgegeben hast mein Problem zu beheben 😉

    EDIT2: Jetzt habe ich dir hier geschrieben und als ich es danach nochmal testen wollte hats nicht mehr geklappt :/. Jetzt kommt auf einmal wieder der Fehler.



  • Jo, hab auch Win 7 (eig nur noch :)).

    Was genau hast du aus deinem Code genommen ??
    Also es klingt langsam echt nicht mehr nach einem Softwareproblem...


Anmelden zum Antworten