none
Device lesen unter C++ RRS feed

  • Frage

  • Nach langer Zeit muss ich mir mal wieder Rat holen. Mein Problem:

    Ich habe die SD-Karte meine Kamera formatiert bevor ich alle JPG-Bilder ausgelesen habe. Ich möchte so viel wie möglich restaurieren. Ich weiß, es gibt provessionelle Werkzeuge dafür. Aber die kosten alle Geld. Und für einmal?

    Ich habe schon alles Mögliche probiert, z.B mit

          CString Device = "\\\\.\\N:";
          FILE * hCD = fopen(Device, "r");
           .
           .
          unsigned int c0
         do
        {
            c0 = fgetc(hCD);
              .
              .

    Hiermit werden einige Chars gelesen. Aber dann kommt nur -1.

    Oder

       HANDLE hCD = CreateFile(Input_Device, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);

       if (hCD == INVALID_HANDLE_VALUE)
          return 1;

       DWORD dwRet;
       unsigned long nBytes;
       while (dwRet = ReadFile(hCD, buffer, 1, &nBytes, NULL))
       {

    Öffnet zwar fehlerlos, liest aber nichts ein.

    Kann mir da jemand vielleicht auf die Sprüge helfen. Ich wäre sehr dankbar.

    Gruß Reusel

     

     

     

    Donnerstag, 28. Oktober 2010 17:02

Antworten

Alle Antworten

  • Warum verwendest Du kein Programm wie:
    GetDataBack...
    http://www.datenrettung-etc.de/datenrettungssoftware.htm


    Jochen Kalmbach (MVP VC++)
    Donnerstag, 28. Oktober 2010 17:29
  • Siehe auch hier:
    http://www.heise.de/software/download/getdataback/8433


    Jochen Kalmbach (MVP VC++)
    • Als Antwort markiert Reusel Donnerstag, 4. November 2010 18:47
    Donnerstag, 28. Oktober 2010 17:31
  • Schönen Dank Jochen. Aber getdataback geht auch nur gegen bares. Es scant zwar mit sehr schönem Ergebnis, kopieren kostet aber 82 €. Und ohne letzteres nütz das Ganze nichts. Ich versuch noch mal den ersten Link.
    Donnerstag, 28. Oktober 2010 19:30
  • Ich würde natürlich zuerst die Testversion probieren, ob es überhaupt auf SD-Karten geht... aber bevor ich 80 h dransitze und das Ding ganz grob nachprogrammiere, würde ich es mir lieber kaufen...


    Jochen Kalmbach (MVP VC++)
    Freitag, 29. Oktober 2010 05:04
  • Ich programmiere nun aber gern. Und als Rentner aus der Software-Branche habe ich auch Zeit. Oder darf man hier nur als aktiver Profi Fragen stellen? (das ist ernst gemeint)

    Trotzdem danke und Gruß Reusel

    Freitag, 29. Oktober 2010 10:59
  • Hast Du alles berücksichtigt was in CreateFile tu physical devices steht?
    http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
    (siehe letztes drittel).

    Ansonsten was liefert GetLastError von Deinem ReadFile, wenn er nicht liest?

    Ansonsten lies mal:
    http://needfulsoftware.com/ReferenceMaterial/ComputerArchitecture/RawDiskAccess/RawDiskAccess2.php


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    • Als Antwort markiert Reusel Sonntag, 31. Oktober 2010 18:03
    Freitag, 29. Oktober 2010 11:19
    Moderator
  • Hallo Martin,

    schönen Dank für Deinen Hinweis. Ich werde ihn mir zu Gemüte ziehn. Der rückgemeldete Fehler-Code zum ReadFile ist 87 = "The parameter is incorrect". Und damit konnte ich nichts anfangen.

    Gruß Reusel

    Sonntag, 31. Oktober 2010 11:26
  • > Der rückgemeldete Fehler-Code zum ReadFile ist 87 = "The parameter is incorrect". Und damit konnte ich nichts anfangen.

    Einer Deiner Werte, die Du an ReadFile übergeben hast ist falsch.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Sonntag, 31. Oktober 2010 15:02
    Moderator
  • Nochmals schönen Dank. Ich werde jetzt erstmal weiter kommen. Wenn ich erfolg habe werde ich es posten.

    Nachdem ich Deine Literaturhinweise gelesen habe, ist mir aufgegangen, dass ich das Buch von Deinem Namensvetter Jeffrey Richter habe (Windows Programmierung für Experten), in dem im Prinzip alles drin steht. Mir als Rentner fehlt eben die Diskussion mit den Kollegen, die einem Denkanstöße geben können.

    GRuß Reusel

    Sonntag, 31. Oktober 2010 15:52
  • Ich habs geschaft! Ich konnte von einer formatierten 256 MB SD-Karte 180 Bilder restaurieren. Vielleicht sind einige davon etwas beschnitten. Müssen wir noch prüfen. Wenn jemand Jnteresse daran hat... Ich muss es nur noch schön machen!
    Mittwoch, 10. November 2010 21:19