PDA

View Full Version : [c] implementare tutto nel file .exe


$te
19-08-2006, 01:51
cé la possibilità di implementare tutti i vari file( ad es. i file .c, .h, .txt,ecc) di un mio programmino nel file .exe? dato ke l'ho visto applicato in varie situazioni,grazie

[Xero]
19-08-2006, 02:13
Setup2Go

$te
19-08-2006, 02:56
io voglio ke con un programma mi si implementa tutti i miei file in un unico file .exe, tutto compresso in esso,un es: io ho un dizionario (berl2hei, ke sicuro conoscete) ke ha solo il file .exe

DanieleC88
19-08-2006, 08:26
Non credo di aver capito perfettamente cosa cerchi, ma se metti nei file di risorse del programma ciò che ti serve dovresti trovare tutto incluso nel tuo file eseguibile e identificato da un alias impostato da te (di solito lo si usa per finestre di dialogo e icone, informazioni varie sul programma, etc).

[Xero]
19-08-2006, 16:46
in setup2go nel tab "Create Setup" spunta "Create Single File Installation (Self-Extracted Setup)" :D

$te
19-08-2006, 17:25
ma nn funziona! io ho fatto un programma in c: questo per funzionare ha bisogno di + file (.c,.txt ecc). Quindi il file .exe solo non funziona: io vorrei che nel file .exe fossero comprese tutte queste cose. é possibile che debba mettere tutto il mio codice nel main.c?

71104
20-08-2006, 13:41
rileggi bene il post di Daniele :read:

[Xero]
21-08-2006, 03:31
ma nn funziona! io ho fatto un programma in c: questo per funzionare ha bisogno di + file (.c,.txt ecc). Quindi il file .exe solo non funziona: io vorrei che nel file .exe fossero comprese tutte queste cose. é possibile che debba mettere tutto il mio codice nel main.c?
qualche tempo fa feci anch'io una cosa del genere usando setup2go e funzionò alla grande...credo sia qualcos'altro il problema :p

edit: soffermandomi sulle tue parole credo di aver capito, a te non serve un setup che racchiuda tutto in un solo .exe ma bensì un exe che avvii il programma e che includa tutti gli altri file necessari al suo funzionamento? in questo caso non so aiutarti...sorry

$te
21-08-2006, 19:32
é proprio quello ke mi serve!!!

71104
21-08-2006, 21:00
é proprio quello ke mi serve!!! appunto, ripeto: rileggi bene il post di Daniele :read:

DanieleC88
21-08-2006, 21:32
Ma che mi sforzo a fare io di scrivere se non mi leggono nemmeno? :cry:
:D

Bentornato 71104! ;)

$te
22-08-2006, 00:10
scusa daniele ....ma nn ho ben capito la tua risposta:) il mio programma é scritto in c

DanieleC88
22-08-2006, 08:33
Usi Visual Studio? Ho trovato questa pagina che spiega bene come fare. ;)

http://www.codeproject.com/cpp/usingtextfile_resources.asp

Le linee che ti interessano sono principalmente queste (modifico un po'):
TCHAR *sResName = _T("ID_DELLA_RISORSA"); // oppure "#numero"
TCHAR *sRestype = _T("NOME_DELLA_RISORSA");
HRSRC hres = FindResource(NULL, sResName, sRestype);
if (hres == 0)
{
_tcprintf(_T("An Error Occurred.\n Could Not Locate Resource File."));
return 1;
}

HGLOBAL hbytes = LoadResource(NULL, hres);
LPVOID pdata = LockResource(hbytes);
LPTSTR sData = (LPTSTR)pdata;
Questo, dopo aver inserito la risorsa personalizzata nel file con estensione ".rc" per includere il file di testo.

P.S.: se posso chiederlo, come mai devi includere header e file sorgente all'interno del programma? Forse c'è un modo migliore di farlo, piuttosto che inserire tutto nell'eseguibile.

71104
22-08-2006, 10:19
aggiungo che alla prima riga ho provato anche io col nome della risorsa ma senza successo; sono riuscito a farlo funzionare solo col numero preceduto dal cancelletto. l'ho fatto nel programma eseguibile del mio progettino open source su SourceForge (http://sf.net/projects/vdiskman) :p

ecco i sorgenti dell'eseguibile, se ti interessano, all'inizio del main (verso la riga 320) troverai il codice per estrarre il driver dalle risorse e scriverlo su file:
http://svn.sourceforge.net/viewvc/vdiskman/trunk/exe/main.cpp?view=markup

71104
22-08-2006, 10:19
Bentornato 71104! ;) hola :D

DanieleC88
22-08-2006, 11:32
l'ho fatto nel programma eseguibile del mio progettino open source su SourceForge (http://sf.net/projects/vdiskman) :p
...Non è che stai cominciando a pubblicizzare il progetto? :asd:

71104
22-08-2006, 12:19
...Non è che stai cominciando a pubblicizzare il progetto? :asd: :D

un po' anzitempo a dire il vero, visto che ancora ho dei problemi: non gestisco alcuni IOCTL ma non riesco a capire quali perché a runtime tutto quello che posso ottenere dalla DbgPrint (una sorta di printf) è il loro codice numerico, non il nome :mc:

se sono bravo però forse riesco a rilasciarlo tra qualche giorno :D

DanieleC88
22-08-2006, 14:38
tutto quello che posso ottenere dalla DbgPrint (una sorta di printf) è il loro codice numerico, non il nome :mc:
grep -R <numero> /usr/include :D

71104
22-08-2006, 18:37
grep -R <numero> /usr/include :D seeeeee te piacerebbe, eh? :Prrr:

se le macro degli IOCTL fossero definite in maniera diretta e banale col numero a sto punto avrei già risolto, ma purtroppo sono definite attraverso l'uso di un'altra macro, la CTL_CODE.