Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Duża ilość plików w exe

Ostatnio zmodyfikowano 2010-08-11 19:29
Autor Wiadomość
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.
P-20703
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_Files

tu na jakimś forum funkcja wypakowująca (nie wiem czy działa):
http://hack.pl/forum/c-c/7031-%5Bc-%5Dfunkcja-wypakowywujace-resource-files.html

nigdy 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:
C/C++
#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:
C/C++
#define TEXTFILE        256
#define IDR_MYTEXTFILE  101
oraz plik resource.rc:
C/C++
#include "resource.h"

IDR_MYTEXTFILE TEXTFILE "text.txt"
// ...tu inne pliki które chcesz 'wsadzić' do exe'ka
(kod znaleziony na stronie http://stackoverflow.com/questions/2933295/embed-text-file-in-a-resource-in-a-native-windows-application.html)
P-20704
« 1 »
  Strona 1 z 1