Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - file dentro l'exe
Forum - C/C++ - file dentro l'exe

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
ciao
stavo facendo un programma che ha bisogno di alcuni file esterni, ma cè il pericolo che qualcuno elimini i file esterni senza sapere che siano necessari al programma
mi chiedevo se è possibile mettere questi file dentro il file exe del programma, in modo che sia tutto un file unico
si puo?

Ultima modifica effettuata da il 13/03/2008 alle 23:18
PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 14:48
Venerdì, 14/03/2008
Ciao..si può mettere aprendo il file che andrai a metere in formato binario  ( e ovviamente anche l'exe) leggere il flusso e metterlo dentro l'eseguibile..:k:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:11
Venerdì, 14/03/2008
come si fa ?

PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 16:26
Venerdì, 14/03/2008
Prova con questo(perdonami eventuali errori,lo sto facendo a memoria):
Codice sorgente - presumibilmente C/C++

  1. #include<fsteram.h>
  2. #include<iostream.h>
  3.  
  4. ifstream ifs ( "file.txt" , ifstream::out | ifstream::binary );  // file da inserire
  5. ofstream out("eseguibile.exe",ifstream::in|ifstream::binary);  // eseguibile
  6.  
  7. while (in.good())
  8.     out << (char) in.get();
  9.  
  10.   in.close();



:k:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:15
Venerdì, 14/03/2008
ho provato
il programma gira ma il file exe rimane grande uguale
io ho messo questo codice
Codice sorgente - presumibilmente Delphi

  1. int main()
  2. {
  3. ifstream in ( "budterence.mp3" ,  ifstream::out | ifstream::binary );  // file da inserire
  4.  
  5. ofstream out("prova.exe",ifstream::in | ifstream::binary);  // eseguibile
  6.  
  7. while (in.good())
  8.     out << (char) in.get();
  9.  
  10.   in.close();
  11. }


ma poi per poter usare il file che ho messo nel exe come faccio a richiamarlo ? faccio come se fosse nella stessa cartella ?

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 21:37
Venerdì, 14/03/2008
Ma no ... non si fa cosi' ...

Semmai devi includere il tuo file binario come "risorsa" (tramite un gestore di risorse) (e' ottimo quello di Visual Studio e Visual C++ ...).

Le risorse sono inserite in un file .res che e' "incorporato" nell'exe dal linker ... quando e' necessario, la risorsa viene "letta" dall'exe e scritta in una cartella temporanea da dove viene usata (ad esempio un file mp3).

Per l'inclusione, lettura ed uso delle risorse, studia come fa Visual Studio ...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:03
Lunedì, 17/03/2008
ho provato e sono riuscito ad includerlo come risorsa, non so come verificarlo esattamente ma ho visto che il file exe è piu grande
ho cercato il modo per usare la risorsa ma non l'ho trovato, e cosa devo fare con il codice che mi hai dato ? scusa ma non ho capito

PM Quote