¿Cómo creo un recurso dll? El dll tendrá un conjunto de archivos .png. De alguna manera, estos archivos .png deberían estar expuestos desde el dll. Mi aplicación necesitaría referir esta dll para obtener un archivo .png.¿Cómo creo un recurso dll
Respuesta
Un dll de recurso es el mismo que cualquier otro dll, simplemente tiene poco o ningún código y relativamente más recursos.
Microsoft no tiene un tipo de recurso predefinido para los archivos PNG, pero se puede definir su propio
la DLL de recursos más mínimo posible es simplemente un archivo .rc compilado pasado al enlazador como este.
//save this as resources.rc (supply your own .png file)
#define RT_PNG 99
#define ID_DIGG 1
ID_DIGG RT_PNG "image\\digg.png"
luego ejecutar estos comandos en un símbolo del sistema.
rc resources.rc
link /dll /noentry /machine:x86 resources.res
Eso es todo. el primer comando compila resources.rc en resources.res el segundo comando convierte resources.res en un dll.
Ahora debería tener un dll llamado resources.dll
que contiene un único archivo png. En la práctica, por supuesto, querrá poner el #defines
en un archivo de encabezado que comparta con el código que usa el dll.
Para usar el dll en C++, su código sería algo como esto.
#define RT_PNG MAKEINTRESOURCE(99)
#define ID_DIGG MAKEINTRESOURCE(1)
HMODULE hMod = LoadLibraryEx("resources.dll", NULL, LOAD_LIBRARY_AS_DATAFILE);
if (NULL != hMod)
{
HRSRC hRes = FindResource(hMod, RT_PNG, ID_DIGG);
if (NULL != hRes)
{
HGLOBAL hgbl = LoadResource(hMod, hRes)
void * pPng = LockResource(hgbl);
UINT32 cbPng = SizeofResource(hMod, hRes);
// pPng now points to the contents of your your .png file
// and cbPng is its size in bytes
}
// Don't free the library until you are done with pPng
// FreeLibrary(hMod);
}
- 1. ¿Cómo creo un archivo XML Intellisense para mi DLL?
- 2. Cargar un ensamblado desde un recurso incrustado
- 3. ¿Cómo descompilo un archivo .dll?
- 4. Cómo descompilar un exe o un dll en el ensamblado
- 5. ¿Cómo creo un niño NSManagedObjectContext?
- 6. ¿Cómo creo un UITextField transparente?
- 7. ¿Cómo creo un texto coloreado?
- 8. Cómo creo un Mailer Observer
- 9. ¿Cómo creo un gamepad virtual?
- 10. ¿Cómo creo un UIViewController programáticamente?
- 11. ¿Cómo hago un recurso PNG?
- 12. ¿Cómo actualizar el recurso dinámico dentro de un recurso dinámico?
- 13. Incrustar un dll dentro de otro como un recurso incrustado y luego llamarlo desde mi código
- 14. Cómo ejecuto un archivo * .dll
- 15. ¿Cómo vincular un .DLL estáticamente?
- 16. ¿Cómo cargar un recurso binario personalizado en una biblioteca estática de VC++ como parte de un dll?
- 17. Cómo usar una carga de DLL desde el recurso de inserción?
- 18. Cómo creo una DLL de Win32 sin una dependencia en el tiempo de ejecución de C
- 19. Incrustar dll no administrado en un C# dll administrado
- 20. ¿Cómo creo un archivo vacío en emacs?
- 21. ¿Cómo creo un programa Java ejecutable?
- 22. En SQLAlchemy, ¿cómo creo un par único?
- 23. ¿Cómo creo programáticamente un formulario de Windows?
- 24. ¿Cómo creo un VirtualHost en Zend Server?
- 25. ¿Cómo creo un campo oculto en MVC3?
- 26. ¿Cómo creo un script de configuración?
- 27. ¿Cómo creo un índice DESC en MySQL?
- 28. Word/OpenXML - ¿Cómo creo un marcador oculto?
- 29. ¿Cómo creo un hash SHA1 en ruby?
- 30. ¿Cómo creo un directorio desde Emacs?
wow ... gracias lot..this se parece a una información útil :) –
mediante el uso de esta técnica, puedo cambiar el icono de creación propia IE del botón de mi barra de herramientas en tiempo real? – karikari
@karikari: No lo creo. No puedo cómo esta técnica ayuda con los cambios de tiempo real. Los recursos en el DLL se definen en el momento del enlace, no son dinámicos. –