Ahoj všem , mám dotaz.
Používám vývojové prostředí CODE::BLOCKS (vžy nejnovější verzy) a chtěl bych do mého "programu" zabalit i další soubory, abych je nemusel furt "vláčet" sebou.
Příklad:
Chtěl bych vytvořit program, který extrahuje soubor hudba.mp3 do C:\
a soubor neco.exe na plochu. Jak by se dalo udělat něco takového?
Prosím o detailní vysvětlení. Děkuji
Fórum › C / C++
Komprese souborů do exe
Ve Windows můžeš použít "resources". Takže vytvoříš (a přidáš do projektu) třeba soubor resource.h:
#define IDR_SOUBOR1 1001
#define IDR_SOUBOR2 1002
A soubor resource.rc:#include "resource.h"
IDR_SOUBOR1 BINARY "soubor1.txt"
IDR_SOUBOR2 BINARY "soubor2.txt"
Pokud už tam .rc máš, tak to můžeš zapsat do něj. Ten .h není nutný, ale je jednodušší používat IDR_SOUBORx než si pamatovat, co má jaké číslo.
Tím se ti při kompilaci ty soubory vloží do resources. Funkce pro jejich uložení na disk potom může vypadat třeba takhle:
BOOL DumpResource(WORD id, char *filename)
{
HRSRC rsrc;
HGLOBAL load;
LPVOID data;
DWORD size;
BOOL status = FALSE;
if ((rsrc = FindResource(NULL, MAKEINTRESOURCE(id), "BINARY")) != NULL &&
(load = LoadResource(NULL, rsrc)) != NULL &&
(data = LockResource(load)) != NULL &&
(size = SizeofResource(NULL, rsrc)) != 0)
{
FILE *file;
if ((file = fopen(filename, "wb")) != NULL) {
if (fwrite(data, 1, size, file) == size)
status = TRUE;
fclose(file);
}
}
return status;
}
A finální použití potom takhle:#include "resource.h"
...
DumpResource(IDR_SOUBOR1, "file1.xx");
DumpResource(IDR_SOUBOR2, "file2.yy");
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 105 hostů
Podobná vlákna
Vytvoření *.EXE souboru — založil Jarda
Spousteni exe souboru — založil machis
Spojování exe souboru — založil lexy
C++ vytvoření exe souboru — založil Honza
Ikonka u exe souboru — založil matouch
Moderátoři diskuze