tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
307
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    RELAX RELAX ist offline Mitglied
    Registriert seit
    Jan 2011
    Beiträge
    12
    Tach Forum,

    ich arbeite nur sehr selten mit Datenverwaltung ect...
    Jetzt muss ich allerdings einen Patcher für ein installiertes
    Programm schreiben.
    Ich habe allerdings Probleme beim Handling mit Ressourcen.

    Wie binde ich Ressourcen richtig ein?
    Wie kopiere ich sie auf die Festplatte?

    Ich finde oft was in Google(z.B:http://www.c-plusplus.de/forum/110456), allerdings hab ich
    damit immer irgendwelche Probleme.

    Ich vermute das ich die Ressource falsch einbinde
    oder etwas anderes falsch mache.
    Ich benutze Visual Studio 2010 hab aber auch CodeBlocks.

    Gruß RELAX

    PS: Ich habe Die Selbe Frage schon vor einigen Tagen in einem anderen Forum gefragt,
    allerdings noch keine Antwort bekommen. Daher hab ich gedacht ich Versuchs mal hier.
    Ich hoffe das es kein Problem darstellt, da ich die Lösung auch relativ dringend brauche.
    Geändert von RELAX (23.10.11 um 18:52 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    Um welche Res-Art geht es?
    Wie ist der aktuelle Code und welche Probleme treten dabei auf?
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    RELAX RELAX ist offline Mitglied
    Registriert seit
    Jan 2011
    Beiträge
    12
    Es sind verschiedene Dateien. .exe und .qqs (text Format) aber auch Bilder.
    Aus C#(Einzige Sprache wo ich mal mit Ressourcen gearbeitet habe) kenn ich es so das es eigentlich egal ist was für eine Datei es ist. Man kann ne .txt auch als eine .exe abspeichern, und je nachdem was drinsteht funktioniert die .exe dann sogar auch... (davor die .exe in .txt umbenannt natürlich )

    Als Code benutze ich z.B. http://www.c-plusplus.de/forum/110456
    Aber bekomme auch Dateien mit Größe "0" raus.
     
    Egal was du kannst... Egal was du tust... Irgendwo gibt es immer einen Asiaten der besser ist als du...

  4. #4
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Der Code sieht eigentlich richtig aus. Prüf doch mal den Inhalt der geschriebenen Datei mit einem Hex-Editor und vergleiche mit deinem Originalfile. Vergleiche das auch mal mit dem Inhalt der Resource (falls kein Standard-Resource-Typ).
     

  5. #5
    3Cyb3r 3Cyb3r ist offline Mitglied Brokat
    Registriert seit
    May 2008
    Ort
    Baunatal (Hessen)
    Beiträge
    413
    Ich schreibe jetzt einfach mal so wie ich es machen würde. Vielleicht hilft dir das weiter, aber im Prinzip dasselbe.

    Pew Pew! Ich hoffe ich habe es richtig aus meinem Kopf zusammen bekommen:
    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    bool _util_decompress_bitmap(char *theResourceName) {
        HRSRC aResourceH;
        HGLOBAL aResourceHGlobal
        unsigned char *aFilePtr;
        unsigned long aFilSize
        HANDLE file_handle;
     
        aResourceH = FindResource(NULL, theResourceName, "BINARY");
        if(!aResourceH) {
            return false;
        }
     
        aResourceHGlobal = LoadResource(NULL, aResourceH);
        if(!aResourceHGlobal) {
            return false;
        }
     
        aFileSize = SizeofResource(NULL, aResourceH);
        aFilePtr = (unsigned char *)LockResource(aResourceHGlobal);
        if(!aFilePtr) {
            return false;
        }
     
        char _filename[64];
        snprintf(_filename, 62, "%s.bmp", theResourceName);
        file_handle = CreateFile(filename,
                                File_ALL_ACCESS,
                                0, Null,
                                Create_Always,
                                0, Null);
        if(INVALID_HANDLE_VALUE == file_handle) {
            int err = GetLastError();
            if((ERROR_ALREADY_EXISTS == err) || (32 == err)) {
                return true;
            }
            printf("%s decompress error %d\n", _filename, err);
            return false;
        }
     
        while(FileSize--) {
            unsigned long numWritten;
            WriteFIle(file_handle, aFilePtr, 1, &numWritten, Null);
            aFilePtr++;
        }
        CloseHandle(file_handle);
        return true;
    }

    Gruß Cyb3r
     
    Bei der Geburt ist ein Mensch so unfertig, wie ein an einem schönen blauen Montag in Taiwan hergestellter Computer vor der Programmierung.
    - Wolfgang Körner

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 21.12.08, 08:55
  2. [C++] Ressource Exportieren
    Von Fastkiller im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 17.12.08, 07:50
  3. Wave in Ressource einbinden und abspielen
    Von horstxxl im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 28.10.07, 22:53
  4. Ressource Dateien
    Von nicok im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 11.03.07, 19:27
  5. Benutzerdefinierte Ressource
    Von kostya im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 13.04.05, 09:49

Stichworte