FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Funciones desde una dll
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Funciones desde una dll
Posted: Tue Oct 19, 2010 02:31 PM

Compañeros del foro,

Parece que estos días me he puesto a hacer todo lo que nunca hice, así que estaré jorobando un poquito por estos lugares......

Quisiera un poco de orientación sobre como llamar funciones contenidas en una dll.

Concretamente se trata de RMChart.dll una dll que permite la generación de muy bellos gráficos.

He visto algo de DLL FUNCTION .....

Pero como el unico lenguage que apenas conozco es fivewin, las funciones desde dll son misterio :oops:

Alguien podría ayudarme proporcionandome un ejemplo de como ejecutar estas funciones desde fivewin, por ejemplo esta:

RMC_CreateChartFromFile function.
Create a new chart by reading a *.rmc-file or passing the data string.


Syntax
nResult (LONG) = RMC_CreateChartFromFile(
ByVal nParentHndl (LONG),
ByVal nCtrlId (LONG),
ByVal nX (LONG),
ByVal nY (LONG),
ByVal nExportOnly (LONG),
ByRef sRMCFile (ASCIIZ)
)

Gracias desde ya por vuestra ayuda. :D

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Funciones desde una dll
Posted: Tue Oct 19, 2010 07:42 PM

:roll:

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Funciones desde una dll
Posted: Wed Oct 20, 2010 09:16 AM

cualquier guia sirve.....:shock:

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Funciones desde una dll
Posted: Wed Oct 20, 2010 09:58 AM
Lo primero que tienes que tener claro es los nombres de las funciones, sus parámetros y tipos.
Los defines al final del programa como DLL32 FUNCTION <NombreFuncionEnTuPrograma> ( <parametro> AS <tipo>... ) AS <tipo> PASCAL FROM "NombreFuncionEnLaDLL" LIB "<NombreDeLaDLL.dll>"
Despues haces las llamadas como cualquier funcción.

Code (fw): Select all Collapse
function main()
local nResult:=0,a:=0,b:=0,c:=0,d:=0,e:=0,f:=""

nResult:=RMC_CreateChartFromFile(a,b,c,d,e,f)

return nil

DLL32 FUNCTION RMC_CreateChartFromFile(nParentHndl AS LONG,;
                                       nCtrlId AS LONG,;
                                       nX AS LONG,;
                                       nY AS LONG,;
                                       nExportOnly AS LONG,;
                                       sRMCFile AS LPSTR) ;
AS LONG PASCAL FROM "RMC_CreateChartFromFile" LIB "NombreDeLaDLL.dll"
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Funciones desde una dll
Posted: Wed Oct 20, 2010 10:00 AM
JmGarcia wrote:Lo primero que tienes que tener claro es los nombres de las funciones, sus parámetros y tipos.
Los defines al final del programa como DLL32 FUNCTION <NombreFuncionEnTuPrograma> ( <parametro> AS <tipo>... ) AS <tipo> PASCAL FROM "NombreFuncionEnLaDLL" LIB "<NombreDeLaDLL.dll>"
Despues haces las llamadas como cualquier funcción.

Code (fw): Select all Collapse
function main()
local nResult:=0,a:=0,b:=0,c:=0,d:=0,e:=0,f:=""

nResult:=RMC_CreateChartFromFile(a,b,c,d,e,f)

return nil

DLL32 FUNCTION RMC_CreateChartFromFile(nParentHndl AS LONG,;
                                       nCtrlId AS LONG,;
                                       nX AS LONG,;
                                       nY AS LONG,;
                                       nExportOnly AS LONG,;
                                       sRMCFile AS LPSTR) ;
AS LONG PASCAL FROM "RMC_CreateChartFromFile" LIB "NombreDeLaDLL.dll"


Muuuuuuuuuchassss graaaaaaciasssss!!!!, ya mismo me pongo a probar!!!! :-)
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Funciones desde una dll
Posted: Wed Oct 20, 2010 01:37 PM
Bueno!!!

He logrado poner accesibles a los programas en fivewin las funciones de RMChart y aparentemente funcionan, ya que al llamarlas
no me da error.

Pero.... tengo dudas, que provienen de mi ignorancia de varios detalles del manejo de windows.
Volviendo a la función que mencionaba al principio....

nResult (LONG) = RMC_CreateChartFromFile(
ByVal nParentHndl (LONG),
ByVal nCtrlId (LONG),
ByVal nX (LONG),
ByVal nY (LONG),
ByVal nExportOnly (LONG),
ByRef sRMCFile (ASCIIZ)
)

NParentHndl - Es el handle de la ventana creo, si entiendo bien es: si ventana: oWnd:hWnd y si dialog oDlg:hWnd....
nCtrlId - Este es el ID único del control.... acá no se... yo defino arbitrariamente el valor de este id?, ... no tengo muy claro eso :-) nX y nY - Son valores numéricos correspondientes a la esquina superior izquierda del gráfico

nExportOnly - es un LONG y dice que debe ser verdadeo para que se vea el gráfico, ¿significa esto que debe ser 1 por verdadero y
0 por falso?.
:-)

sRMCFile - es el nombre del archivo RMC que contiene las características del gráfico a desplegar


En este link encontrarán: la dll, el archivo .hlp y el archivo rmc por si puede ser util para alguien, es una dll gratuita, agradezco desde ya la ayuda que me puedan brindar para ir captando la idea de como trabajar con ella.

http://www.box.net/shared/h0jrmnkzzd

Gracias desde YA:)
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 731
Joined: Fri Oct 07, 2005 07:42 AM
Re: Funciones desde una dll
Posted: Wed Oct 20, 2010 02:27 PM
Saludos

Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Funciones desde una dll
Posted: Wed Oct 20, 2010 03:02 PM
jose_murugosa wrote:nExportOnly - es un LONG y dice que debe ser verdadeo para que se vea el gráfico, ¿significa esto que debe ser 1 por verdadero y 0 por falso?. :-)
Sí, se puede usar 1 o 0. Pero en la llamada a la función usa mejor ".T." o ".F."
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Funciones desde una dll
Posted: Wed Oct 20, 2010 03:07 PM

Gracias Rafa!!!!!!
Parece que intentaba descubrir la pólvora.

Gracias JMGarcía por tus comentarios y ayuda!!!!!!

Vuestro interés y vuestras rápidas respuestas han sido extraordinarios, no me sorprende porque siempre es así, verdaderamente me siento muy feliz de pertenecer a esta comunidad tan servicial.

Bueno, tengo muuuuuuucho para leer, revisar, compilar y probar, GRACIAS DE NUEVO :D

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"

Continue the discussion