Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-07-2007, 13:34   #1
Rsk
Senior Member
 
L'Avatar di Rsk
 
Iscritto dal: Dec 2006
Messaggi: 314
[c++] inserire immagini in file exe

sto realizzando un programma in c++, dovrei inserire un'imaggine in un file exe e appena si clicca sul file exe l'immagine deve venire estratta nella cartella corrente.
ho creato il file risorsa con questa sintassi:
img BITMAP "1.bmp"

ma non so come procedere.

mi sapete aiutare
Rsk è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2007, 14:56   #2
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
Quote:
Originariamente inviato da Rsk Guarda i messaggi
sto realizzando un programma in c++, dovrei inserire un'imaggine in un file exe e appena si clicca sul file exe l'immagine deve venire estratta nella cartella corrente.
ho creato il file risorsa con questa sintassi:
img BITMAP "1.bmp"

ma non so come procedere.

mi sapete aiutare

Non credo sia possibile fare una cosa del genere...
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2007, 16:16   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Rsk Guarda i messaggi
sto realizzando un programma in c++, dovrei inserire un'imaggine in un file exe e appena si clicca sul file exe l'immagine deve venire estratta nella cartella corrente.
ho creato il file risorsa con questa sintassi:
img BITMAP "1.bmp"

ma non so come procedere.

mi sapete aiutare
per ottenere un puntatore alla risorsa:
FindResource
LoadResource
LockResource

poi per scrivere tutta la roba nel file usa delle comunissime CreateFile/WriteFile oppure fopen/fwrite. per chiudere il file naturalmente CloseHandle oppure fclose.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2007, 16:16   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da alecocco Guarda i messaggi
Non credo sia possibile fare una cosa del genere...
non hai mai visto un installer eseguibile autoestraente...?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2007, 18:19   #5
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
Quote:
Originariamente inviato da 71104 Guarda i messaggi
non hai mai visto un installer eseguibile autoestraente...?
Scusate, adesso che ho riletto quello che voleva mi sono accorto di aver detto una cazzata.

Sorry
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2007, 07:46   #6
Rsk
Senior Member
 
L'Avatar di Rsk
 
Iscritto dal: Dec 2006
Messaggi: 314
Quote:
Originariamente inviato da 71104 Guarda i messaggi
per ottenere un puntatore alla risorsa:
FindResource
LoadResource
LockResource

poi per scrivere tutta la roba nel file usa delle comunissime CreateFile/WriteFile oppure fopen/fwrite. per chiudere il file naturalmente CloseHandle oppure fclose.
grazie

ma ho un problema con la funzione
HRSRC FindResource(HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType);

il file h lho chiamato img.h, l'immagine da caricare lho chiamata foto.

ho provato a definire la funzione cosi'

HRSRC FindResource(img,foto,RT_BITMAP);

ma nn va.

scusate ho iniziato da poco con il c++..
Rsk è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2007, 09:26   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
FindResource al primo parametro nel tuo caso vuole NULL perché devi prendere la risorsa dal tuo file eseguibile; al secondo invece devi passare l'identificatore numerico della risorsa scritto come stringa e preceduto da un #, per esempio "#258". infine al terzo parametro devi passare RT_BITMAP.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2007, 11:02   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Questa funzione che ho fatto serve per salvare una risorsa su un file:
Codice:
BOOL SaveResourceToFile (HMODULE hModule, LPCSTR lpName, LPCSTR lpType, LPCSTR lpszFilename)
{
    HRSRC hRsrc;
    HGLOBAL hGlobal;
    DWORD dwSize, dwWritten;
    LPVOID lpData;
    HANDLE hFile;
    BOOL bRet;

    if ((hRsrc = FindResource (hModule, lpName, lpType)) == NULL)
        return FALSE;

    if ((dwSize = SizeofResource (hModule, hRsrc)) == 0)
        return FALSE;

    if ((hGlobal = LoadResource (hModule, hRsrc)) == NULL)
        return FALSE;

    if ((lpData = LockResource (hGlobal)) == NULL)
    {
        FreeResource (hGlobal);
        return FALSE;
    }

    if ((hFile = CreateFile (lpszFilename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
                             FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE)
    {
        FreeResource (hGlobal);
        return FALSE;
    }

    bRet = WriteFile (hFile, lpData, dwSize, &dwWritten, NULL) && dwWritten == dwSize;

    CloseHandle (hFile);
    FreeResource (hGlobal);

    return bRet;
}
C'è solo una questione particolare da tenere presente. Se nel file .rc viene specificata una immagine nel modo tipico

nameID BITMAP filename

nel file eseguibile in realtà non ci sarà l'header iniziale di 14 bytes della immagine. Per questo motivo, se l'obiettivo è solamente quello di estrarre una risorsa per salvarla su file, la cosa migliore da fare è quella di assegnargli un tipo di risorsa custom, es MYBMP o qualunque altra cosa.

Naturalmente l'header iniziale si potrebbe anche rigenerare facilmente (sono pochi dati) e quindi scriverlo all'inizio del file prima di scrivere la risorsa. Ma la funzione che ho postato sarebbe da rivedere, in quanto adesso è "generica".
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2007, 13:30   #9
Rsk
Senior Member
 
L'Avatar di Rsk
 
Iscritto dal: Dec 2006
Messaggi: 314
ok grazie a tutti
Rsk è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Fusione nucleare, l'Italia entra in gioc...
AMD protagonista al CES 2026: il keynote...
Invia il tuo nome intorno alla Luna con ...
Apple presenta i nuovi iPhone 17 Pro e P...
Apple presenta iPhone 17: fotocamera Cen...
Apple annuncia l''impossibilmente sottil...
Apple Watch Series 11 ufficiale: il più ...
Apple svela Watch Ultra 3 e Watch SE 3: ...
AirPods Pro 3 ufficiali: cancellazione d...
Kia EV3 è una Xbox 'che fa brum':...
Nel 2026 cambiano le regole della F1. Me...
Concept THREE: al salone di Monaco Hyund...
Broadcom in tribunale per VMware: dopo u...
Microsoft integra l'intelligenza artific...
3 portatili con GeForce RTX 5070 che fan...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v