c++ e immagini inside
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 10 di 10

Discussione: c++ e immagini inside

Cambio titolo
  1. #1
    Utente Personalizzato L'avatar di Riskios
    Registrato il
    08-05
    Località
    City 17
    Messaggi
    1.579

    c++ e immagini inside

    sto realizzando un programma in c++, dovrei inserire un'imaggine in un file exe per poi visualizzarla. Mi sapete dire come fare?

  2. #2
    Everything Ends L'avatar di Carmine_XX
    Registrato il
    12-06
    Località
    Milano
    Messaggi
    7.054
    Devi inserirla come risorsa nel file exe e poi a runtime la estrai
    Vorrei veder più fuoco ch'acqua o terra
    e 'l mondo e 'l cielo in peste e 'n fame e 'n guerra
    L'HO EMULATO --> qui

  3. #3
    Utente Personalizzato L'avatar di Riskios
    Registrato il
    08-05
    Località
    City 17
    Messaggi
    1.579
    Citazione Carmine_XX
    Devi inserirla come risorsa nel file exe e poi a runtime la estrai
    si ma non so come fare.. ho iniziato da poco..
    uso dev c++..

  4. #4
    Everything Ends L'avatar di Carmine_XX
    Registrato il
    12-06
    Località
    Milano
    Messaggi
    7.054
    Beh, fai aggiungi risorsa...
    E le inserisci un ID adatto.

    Per estarla, ecco un esempio direttamente dal libro "Rootkits - Subverting the windows kernel"

    Codice:
    
    
    bool _util_decompress_file(char *theResourceName) { HRSRC aResourceH; HGLOBAL aResourceHGlobal; unsigned char * aFilePtr; unsigned long aFileSize; HANDLE file_handle;
    ////////////////////////////////////////////////////////// // locate a named resource in the current binary EXE ////////////////////////////////////////////////////////// aResourceH = FindResource(NULL, theResourceName, "BINARY"); if(!aResourceH) { return false; }
    aResourceHGlobal = LoadResource(NULL, aResourceH); if(!aResourceHGlobal) { return false; }
    aFileSize = SizeofResource(NULL, aResourceH); aFilePtr = (unsigned char *)LockResource(aResourceHGlobal); if(!aFilePtr) { return false; }
    char _filename[64]; snprintf(_filename, 62, "%s.jpg", theResourceName); file_handle = CreateFile(filename, FILE_ALL_ACCESS, 0, NULL,
    CREATE_ALWAYS, 0, NULL); if(INVALID_HANDLE_VALUE == file_handle) { int err = GetLastError(); if( (ERROR_ALREADY_EXISTS == err) || (32 == err)) { // no worries, file exists and may be locked // due to exe return true; } printf("%s decompress error %d\n", _filename, err); return false; } // While loop to write resource to disk while(aFileSize--) { unsigned long numWritten; WriteFile(file_handle, aFilePtr, 1, &numWritten, NULL); aFilePtr++; } CloseHandle(file_handle); return true; }
    Vorrei veder più fuoco ch'acqua o terra
    e 'l mondo e 'l cielo in peste e 'n fame e 'n guerra
    L'HO EMULATO --> qui

  5. #5
    Utente Personalizzato L'avatar di Riskios
    Registrato il
    08-05
    Località
    City 17
    Messaggi
    1.579
    che libreria devo includere?

  6. #6
    Everything Ends L'avatar di Carmine_XX
    Registrato il
    12-06
    Località
    Milano
    Messaggi
    7.054
    windows.h se non sbaglio
    Vorrei veder più fuoco ch'acqua o terra
    e 'l mondo e 'l cielo in peste e 'n fame e 'n guerra
    L'HO EMULATO --> qui

  7. #7
    Utente Personalizzato L'avatar di Riskios
    Registrato il
    08-05
    Località
    City 17
    Messaggi
    1.579
    si ok.
    quando scopro come si aggiungono le risorse ti dico se va.

    edit: se aggiungo l'img si vede come se la aprissi con il blocco note
    Ultima modifica di Riskios; 18-07-2007 alle 17:20:35

  8. #8
    Utente Personalizzato L'avatar di Riskios
    Registrato il
    08-05
    Località
    City 17
    Messaggi
    1.579
    mi aiutate nella creazione di un file risorsa?

  9. #9
    Utente
    Registrato il
    07-03
    Messaggi
    1.435
    Ma l'immagine è .bmp? Creati la bitmap, addala nel file di risorse, caricala con LoadBitmap(), creati una finestra e usa BitBlt() per disegnare l'immagine.

    Ma questo è solo uno dei tanti modi per "visualizzare un'immagine". Magari invece delle GDI potresti usare SDL o qualsiasi altra libreria grafica. Oppure il file potrebbe non essere .bmp, nel qual caso sarebbe necessario scriversi un loader del formato che ti interessa usare (oppure usare librerie già esistenti, come DevIL) ed estrarre la risorsa con il metodo postato da Carmine_XX.
    Ultima modifica di Hangman; 19-07-2007 alle 08:45:49

  10. #10
    Utente Personalizzato L'avatar di Riskios
    Registrato il
    08-05
    Località
    City 17
    Messaggi
    1.579
    ho creato il file risorsa con questa sintassi:
    Codice:
    img BITMAP "1.bmp"
    adesso l'imaggine non la devo disegnare in una finestra ma estrarla dal file exe e metterla nella cartella corrente ma non so come fare.

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •