2009-07-02 15 views
6

Come creare una risorsa incorporata e quindi accedervi da C++?Risorsa incorporata in C++

Qualsiasi esempio su come leggere la risorsa sarebbe ottimo.

Sto usando Visual Studio 2005.

Grazie in anticipo.

Modifica: voglio inserire un file xsd richiesto durante la convalida dello schema del file xml ricevuto.

risposta

9

che sto facendo @Sharptooth spiegato prima e utilizzare il seguente codice per ottenere la risorsa

HRSRC hResInfo = FindResource(hInstance, MAKEINTRESOURCE(resourceId), type); 
HGLOBAL hRes = LoadResource(hInstance, hResInfo); 
LPVOID memRes = LockResource(hRes); 
DWORD sizeRes = SizeofResource(hInstance, hResInfo); 

Qui devi cambiare resourceId e type.

Ad esempio per un file .png, utilizzo FindResource(hInstance, MAKEINTRESOURCE(bitmapId), _T("PNG")); (la stringa "PNG" è il tipo utilizzato quando si aggiunge una risorsa personalizzata).

+0

come si ottiene l'handle della DLL in fase di esecuzione? – Gilad

+0

Puoi verificare se questa domanda ti aiuta "Come posso ottenere HINSTANCE da una DLL?" http://stackoverflow.com/questions/2126657/how-can-i-get-hinstance-from-a-dll#2126689 – Ismael

3

Aggiungere un file di risorse (.rc) al progetto, inserire la descrizione della risorsa lì. Quando si crea il progetto, il compilatore di risorse compilerà il file di risorse e il linker collegherà il file di risorse compilato al modulo eseguibile risultante.

In runtime chiamare FindResource(), quindi LoadResource() WinAPI functions.

Problemi correlati