Página 1 de 1

Off Topic Recursos en xEdit

Publicado: Mié Sep 21, 2011 11:45 pm
por juanc
Buenas tardes compañeros:
Ojala me puedan ayudar... agregue recursos de la siguiente manera en un
proyecto en xEdit
NewTxt RCDATA "Archivo.Txt"
pero al tratar de obtenerlo con el siguiente codigo me marca que no existe
la funcion findresource, tengo que agregar alguna libreria ?
Muchas gracias de antemano
Local hRes, cReturn
//
IF ( hRes := FindResource( 0, cID, RT_RCDATA ) ) != 0
cReturn := LoadResource( 0, hRes )
ENDI
Juan Castillo Arteaga
Area de sistemas
C.Fernandez y Cia., S.A. de C.V.

Off Topic Recursos en xEdit

Publicado: Jue Sep 22, 2011 12:12 am
por zeasoftware
debes tener el "Archivo.Txt" en la carpeta Resource de tu aplicación, a mi
me paso lo mismo, pensaba que al incluirlo en el proyecto lo cargaba y no es
así­.
Saludos.
Ramón Zea
Móvil.: 993-231.62.29
Tel./Fax: 993-353-46-73
zeasoftware@hotmail.com
"Juan Castillo A." escribió en el mensaje de
noticias:4e7a5a9e$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Buenas tardes compañeros:
Ojala me puedan ayudar... agregue recursos de la siguiente manera en un
proyecto en xEdit
NewTxt RCDATA "Archivo.Txt"
pero al tratar de obtenerlo con el siguiente codigo me marca que no existe
la funcion findresource, tengo que agregar alguna libreria ?
Muchas gracias de antemano
Local hRes, cReturn
//
IF ( hRes := FindResource( 0, cID, RT_RCDATA ) ) != 0
cReturn := LoadResource( 0, hRes )
ENDI
Juan Castillo Arteaga
Area de sistemas
C.Fernandez y Cia., S.A. de C.V.

Off Topic Recursos en xEdit

Publicado: Jue Sep 22, 2011 12:25 am
por juanc
Muchas gracias por tu ayuda, los archivos los tengo en la carpeta resource
del proyecto, pero al compilar marca lo siguiente:
Error: Unresolved external '_HB_FUN_FINDRESOURCE' referenced from
C:XEDIT2SAMPLEMODULE1.OBJ
Error: Unresolved external '_HB_FUN_LOADRESOURCE' referenced from
C:XEDIT2SAMPLEMODULE1.OBJ
Falta alguna libreria o quizas sea necesario meter directamente el codigo
necesario con esas funciones.
Saludos Cordiales
<zeasoftware@hotmail.com> escribió en el mensaje
news:[email=4e7a6157@svctag-j7w3v3j....]4e7a6157@svctag-j7w3v3j....[/email]
> debes tener el "Archivo.Txt" en la carpeta Resource de tu aplicación, a mi
> me paso lo mismo, pensaba que al incluirlo en el proyecto lo cargaba y no
> es así.
>
> Saludos.
> Ramón Zea
> Móvil.: 993-231.62.29
> Tel./Fax: 993-353-46-73
> zeasoftware@hotmail.com
> "Juan Castillo A." escribió en el mensaje de
> noticias:4e7a5a9e$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Buenas tardes compañeros:
>
> Ojala me puedan ayudar... agregue recursos de la siguiente manera en un
> proyecto en xEdit
>
> NewTxt RCDATA "Archivo.Txt"
>
> pero al tratar de obtenerlo con el siguiente codigo me marca que no existe
> la funcion findresource, tengo que agregar alguna libreria ?
>
> Muchas gracias de antemano
>
>
> Local hRes, cReturn
> //
> IF ( hRes := FindResource( 0, cID, RT_RCDATA ) ) != 0
> cReturn := LoadResource( 0, hRes )
> ENDI
>
>
> Juan Castillo Arteaga
> Area de sistemas
> C.Fernandez y Cia., S.A. de C.V.
>
>

Off Topic Recursos en xEdit

Publicado: Jue Sep 22, 2011 11:30 am
por jlalin
Juan,
las funciones FindResource y LoadResource son de Xailer y creo que no están
en XEdit.
Saludos,
José Lalí­n

Off Topic Recursos en xEdit

Publicado: Jue Sep 22, 2011 8:15 pm
por juanc
Muchas gracias Jose por la aclaracion, vamos a buscar en Google codigo que
puedan sustituir esas funciones.
Saludos Cordiales.
"José Lalín" <dezac@corevia.com> escribió en el mensaje
news:4e7b0009$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Juan,
las funciones FindResource y LoadResource son de Xailer y creo que no están
en XEdit.
Saludos,
José Lalín

Off Topic Recursos en xEdit

Publicado: Vie Sep 23, 2011 1:05 am
por juanc
Buenas tardes, sigo peleando con el codigo...
Encontre que agregando el siguiente codigo, ya no me marca error, la funcion
findresource me retorna un numero pero la funcion loadresource en lugar de
retornar el recurso tambien me da un numero, ¿ alguna idea de lo que esta
mal ?
#include "hbdll.ch"
IMPORT FindResource( arg1, arg2, arg3 ) FROM Kernel32.dll EXPORTED AS
FindResource
IMPORT LoadResource( arg1, arg2 ) FROM Kernel32.dll EXPORTED AS LoadResource

Saludos Cordiales.
"Juan Castillo A." <juanc@lasnovedades.com.mx> escribió en el mensaje
news:4e7a5a9e$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Buenas tardes compañeros:
>
> Ojala me puedan ayudar... agregue recursos de la siguiente manera en un
> proyecto en xEdit
>
> NewTxt RCDATA "Archivo.Txt"
>
> pero al tratar de obtenerlo con el siguiente codigo me marca que no existe
> la funcion findresource, tengo que agregar alguna libreria ?
>
> Muchas gracias de antemano
>
>
> Local hRes, cReturn
> //
> IF ( hRes := FindResource( 0, cID, RT_RCDATA ) ) != 0
> cReturn := LoadResource( 0, hRes )
> ENDI
>
>
> Juan Castillo Arteaga
> Area de sistemas
> C.Fernandez y Cia., S.A. de C.V.
>
>
>

Off Topic Recursos en xEdit

Publicado: Vie Sep 23, 2011 5:10 am
por juanc
En el blog de Bielsys http://bielsys.blogspot.com/ he encontrado practicamente la solucion. Muchas gracias Gabriel Maimó.
codigo:
#pragma BEGINDUMP
#include "Windows.h"
#include "hbApi.h"
HB_FUNC( RESTOFILE )
{
HRSRC res=FindResource(NULL,"ACTVER",RT_RCDATA);
LPDWORD bytesWritten;
int size=SizeofResource(NULL,res);
HGLOBAL hRes=LoadResource(NULL,res);
unsigned char *pRes=(unsigned char *)LockResource(hRes);
HANDLE hFile=CreateFile("ACTVER.EXE",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
WriteFile(hFile,pRes,size,&bytesWritten,NULL);
CloseHandle(hFile);
}
#pragma ENDDUMP
Ahora falta parametrizar el nombre del recurso y el nombre del archivo de salida, nunca he hecho nada con lenguaje c pero bueno... por ahi debe haber ejemplos:
Saludos Cordiales.
"Juan Castillo A." <juanc@lasnovedades.com.mx> escribió en el mensaje news:4e7bbeea$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Buenas tardes, sigo peleando con el codigo...
>
> Encontre que agregando el siguiente codigo, ya no me marca error, la funcion
> findresource me retorna un numero pero la funcion loadresource en lugar de
> retornar el recurso tambien me da un numero, ¿ alguna idea de lo que esta
> mal ?
>
> #include "hbdll.ch"
> IMPORT FindResource( arg1, arg2, arg3 ) FROM Kernel32.dll EXPORTED AS
> FindResource
> IMPORT LoadResource( arg1, arg2 ) FROM Kernel32.dll EXPORTED AS LoadResource
>
>
> Saludos Cordiales.
>
> "Juan Castillo A." <juanc@lasnovedades.com.mx> escribió en el mensaje
> news:4e7a5a9e$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Buenas tardes compañeros:
>>
>> Ojala me puedan ayudar... agregue recursos de la siguiente manera en un
>> proyecto en xEdit
>>
>> NewTxt RCDATA "Archivo.Txt"
>>
>> pero al tratar de obtenerlo con el siguiente codigo me marca que no existe
>> la funcion findresource, tengo que agregar alguna libreria ?
>>
>> Muchas gracias de antemano
>>
>>
>> Local hRes, cReturn
>> //
>> IF ( hRes := FindResource( 0, cID, RT_RCDATA ) ) != 0
>> cReturn := LoadResource( 0, hRes )
>> ENDI
>>
>>
>> Juan Castillo Arteaga
>> Area de sistemas
>> C.Fernandez y Cia., S.A. de C.V.
>>
>>
>>
>
>
--

Off Topic Recursos en xEdit

Publicado: Vie Sep 23, 2011 10:38 am
por jlalin
Juan,
este código te será más fácil de entender y modificar cuando lo necesites.
FUNCTION ResourceToFile( cResource, cFile )
LOCAL hFile := FCreate( cFile )
IF hFile != -1
FWrite( hFile, ExtractResource( cResource ) )
FClose( hFile )
ENDIF
RETURN File( cFile )
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
HB_FUNC( EXTRACTRESOURCE )
{
HRSRC hRes = FindResource( NULL, hb_parc( 1 ), RT_RCDATA );
if( hRes )
{
int nSize = SizeofResource( NULL, hRes );
char * lpRes = (char *) LoadResource( NULL, hRes );
hb_retclen( lpRes, nSize );
}
else
hb_retc( "" );
}
#pragma ENDDUMP
Saludos,
José Lalí­n

Off Topic Recursos en xEdit

Publicado: Vie Sep 23, 2011 5:30 pm
por juanc
Gracias ! Vamos a probarlo, te agradezco y Saludos Cordiales.
"José Lalín" <dezac@corevia.com> escribió en el mensaje
news:4e7c4567$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Juan,
este código te será más fácil de entender y modificar cuando lo necesites.
FUNCTION ResourceToFile( cResource, cFile )
LOCAL hFile := FCreate( cFile )
IF hFile != -1
FWrite( hFile, ExtractResource( cResource ) )
FClose( hFile )
ENDIF
RETURN File( cFile )
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
HB_FUNC( EXTRACTRESOURCE )
{
HRSRC hRes = FindResource( NULL, hb_parc( 1 ), RT_RCDATA );
if( hRes )
{
int nSize = SizeofResource( NULL, hRes );
char * lpRes = (char *) LoadResource( NULL, hRes );
hb_retclen( lpRes, nSize );
}
else
hb_retc( "" );
}
#pragma ENDDUMP
Saludos,
José Lalín

Off Topic Recursos en xEdit

Publicado: Vie Sep 23, 2011 6:00 pm
por juanc
Funciono a la primera!, te agradezco mucho Jose Lalín. Saludos Cordiales.
"José Lalín" <dezac@corevia.com> escribió en el mensaje
news:4e7c4567$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Juan,
este código te será más fácil de entender y modificar cuando lo necesites.
FUNCTION ResourceToFile( cResource, cFile )
LOCAL hFile := FCreate( cFile )
IF hFile != -1
FWrite( hFile, ExtractResource( cResource ) )
FClose( hFile )
ENDIF
RETURN File( cFile )
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
HB_FUNC( EXTRACTRESOURCE )
{
HRSRC hRes = FindResource( NULL, hb_parc( 1 ), RT_RCDATA );
if( hRes )
{
int nSize = SizeofResource( NULL, hRes );
char * lpRes = (char *) LoadResource( NULL, hRes );
hb_retclen( lpRes, nSize );
}
else
hb_retc( "" );
}
#pragma ENDDUMP
Saludos,
José Lalín