Página 1 de 1
¿Como obtener un RCDATA almacenado en una DLL?
Publicado: Mar Abr 10, 2012 2:04 pm
por TSALES
Hola
Necesito obtener el contenido de un fichero XML almacenado como RCDATA en un fichero RC. Si el RC está en el propio ejecutable puedo acceder mediante la función FindResource() y LoadResource pero si el RC está en una DLL creada con Xailer ¿Como puedo obtenerlo?
Saludos
Toni Sales
¿Como obtener un RCDATA almacenado en una DLL?
Publicado: Mar Abr 10, 2012 5:28 pm
por ignacio
TSALES escribió el mar, 10 abril 2012 14:04Hola
Necesito obtener el contenido de un fichero XML almacenado como RCDATA en un fichero RC. Si el RC está en el propio ejecutable puedo acceder mediante la función FindResource() y LoadResource pero si el RC está en una DLL creada con Xailer ¿Como puedo obtenerlo?
Saludos
Toni Sales
nDll := 1 // orden de carga de la DLL
hRes := FindResource( GetInstance( nDll ), "cResName", RT_RCDATA )
cXml := LoadResource( 0, hRes )
Saludos
¿Como obtener un RCDATA almacenado en una DLL?
Publicado: Mar Abr 10, 2012 8:22 pm
por TSALES
Ignacio
No consigo que funcione. Con lo que me indicas, el FindResource localiza el fichero pero el LoadResource no lee el contenido.
El codigo es el siguiente:
=====================
LOCAL hRes
LOCAL cXsl, h
LOCAL nHandle
LOCAL nDll := 1
nHandle := HB_LibLoad( "CodeInDll.dll" )
IF ( hRes := FindResource( GetInstance( nDll ), "LISTADOARTICULOSPORCLIENTE", RT_RCDATA ) ) != 0
cXsl := LoadResource( 0, hRes )
// Aquí el cXsl está vacio.
IF ( h := FCreate( "f:Prueba.xml" ) ) != -1
// Save the main part
FWrite( h, cXsl )
FClose( h )
ENDIF
ENDIF
HB_LibFree( nHandle )
=========================
El fichero correponde a un listado FastReport almacenado en el fichero RC e incluido en el RC del proyecto CodeInDll.dll:
LISTADOARTICULOSPORCLIENTE RCDATA MOVEABLE "D:ArticulosPorCliente.fr3"
¿Como obtener un RCDATA almacenado en una DLL?
Publicado: Mié Abr 11, 2012 11:30 am
por ignacio
Prueba con:
hRes := FindResource( GetInstance( nDll ), "cResName", RT_RCDATA )
cXml := LoadResource( GetInstance( nDll ), hRes )
Saludos
¿Como obtener un RCDATA almacenado en una DLL?
Publicado: Mié Abr 11, 2012 12:17 pm
por TSALES
Gracias Ignacio
Ahora funciona perfecto.
Toni Sales