Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

JRJ

Treue Seele

  • »JRJ« ist der Autor dieses Themas

Beiträge: 113

Wohnort: Tirol

Beruf: Schüler

  • Private Nachricht senden

1

19.06.2011, 22:58

[C++] Selbstextrahierendes Archiv programmieren

Bei SFX-Archiven wird dem Archiv selbst, also zum Beispiel einem Zip-, Rar- oder Cabinetarchiv, ein kleines Programm ("Stub") hinzugefügt, das den nötigen Code enthält, um das Archiv zu dekomprimieren.
Quelle: Wikipedia

Meine Frage lautet jetzt wie so ein Stub aussehen könnte und wo dieser Stub oder das Archiv steht.

Meine Idee wäre gewesen das Archiv Hexadezimal als großen String in dem Programm zu speichern.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
int main()
{
    char archiv[] = "0x43 0xfa 0x9f  usw. ";  //Das komplette Archiv in Hexadezimaler Form

    entpacken(archiv);   //Diese Funktion entpackt das Archiv.

    return 0;
}


Dieses Programm wäre nicht allzu schwer umzusetzen. ABER man muss es kompilieren wenn man ein neues Archiv erstellen will.
Wie machen es die Programm WinRAR und co? ?(

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

19.06.2011, 23:59

Soweit ich das weiß, wird einem festen kompilierten Quelltext ein "Datenstrom" beigelegt und alles in einer EXE gespeichert. Beim dekomprimieren greift dann der ausführbare Teil der Anwendung auf die beigelegten Daten zurück. Frag mich aber bitte nicht, wie das in C++ zu realisieren ist.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

20.06.2011, 00:04

Unter Windows würde ich das vermutlich über Ressourcen lösen.

JRJ

Treue Seele

  • »JRJ« ist der Autor dieses Themas

Beiträge: 113

Wohnort: Tirol

Beruf: Schüler

  • Private Nachricht senden

4

20.06.2011, 07:21

Danke dot!
Das ist genau das was ich gesucht habe.

Werbeanzeige