Duża ilość plików w exe
Ostatnio zmodyfikowano 2010-08-11 19:29
TheSnake Temat założony przez niniejszego użytkownika |
Duża ilość plików w exe » 2010-08-11 19:18:17 Witam, czy da się używając Dev-Cpp "wsadzić" do exe'ka foldery i pliki (174 pliki, 33 foldery) i wypakować z tego exe'ka je w takiej samej postaci (struktura katalogów itp.)? Waga pliku nie ma znaczenia.
Pozdrawiam. |
|
ison |
» 2010-08-11 19:29:51 przy kompilacji możesz skorzystać z Resource Files które potem w jakim chcesz momencie będziesz mógł wypakować lub korzystać z nich w programie. więcej o .rc: http://gpwiki.org/index.php/C:Custom_Resource_Filestu na jakimś forum funkcja wypakowująca (nie wiem czy działa): http://hack.pl/forum/c-c/7031-%5Bc-%5Dfunkcja-wypakowywujace-resource-files.htmlnigdy czegoś takiego nie robiłem więc bezpośrednio kodu ci nie podam, ale o plikach .rc informacji jest wystarczająco, wystarczy wyszukać w google //edit przykład użycia (z plikiem tekstowym): tworzymy nowy projekt main.cpp: #include <windows.h> #include <cstdio> #include "resource.h"
void LoadFileInResource( int name, int type, DWORD & size, const char *& data ) { HMODULE handle =::GetModuleHandle( NULL ); HRSRC rc =::FindResource( handle, MAKEINTRESOURCE( name ), MAKEINTRESOURCE( type ) ); HGLOBAL rcData =::LoadResource( handle, rc ); size =::SizeofResource( handle, rc ); data = static_cast < const char *>(::LockResource( rcData ) ); }
int main() { DWORD size = 0; const char * data = NULL; LoadFileInResource( IDR_MYTEXTFILE, TEXTFILE, size, data ); char * buffer = new char[ size + 1 ]; ::memcpy( buffer, data, size ); buffer[ size ] = 0; ::printf( "Zawartosc pliku tekstowego: %s\n", buffer ); delete[] buffer; while( 1 ); return 0; }
dołączamy do projektu plik resource.h: #define TEXTFILE 256 #define IDR_MYTEXTFILE 101
oraz plik resource.rc: #include "resource.h"
IDR_MYTEXTFILE TEXTFILE "text.txt"
(kod znaleziony na stronie http://stackoverflow.com/questions/2933295/embed-text-file-in-a-resource-in-a-native-windows-application.html) |
|
« 1 » |