FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como se pone una funcion en un dll y como se invoca
Posts: 225
Joined: Tue Feb 28, 2006 04:25 PM
Como se pone una funcion en un dll y como se invoca
Posted: Mon Nov 06, 2006 06:12 PM

Estimados Amigos

Como se pone una funcion en un dll y como se invoca
luego desde otro programa en xharbour

Saludos

Vladimir Zorrilla Llerena

ME INTERESA FW Y XHB POR SER OPEN SOURCE
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como se pone una funcion en un dll y como se invoca
Posted: Mon Nov 06, 2006 09:23 PM

Vladimir,

La función a poner en la DLL es en C ó en PRG ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 225
Joined: Tue Feb 28, 2006 04:25 PM
sobre un prg
Posted: Tue Nov 07, 2006 02:49 PM

el programa a poner en el dll es un archivo prg

Gracias

ME INTERESA FW Y XHB POR SER OPEN SOURCE
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como se pone una funcion en un dll y como se invoca
Posted: Tue Nov 07, 2006 04:08 PM

Vladimir,

Revisa los siguientes ejemplos de FWH:

babu.prg
babudll.prg
testdll.prg
testdllp.prg
pcodedll.prg

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 253
Joined: Fri Feb 03, 2006 04:21 PM
Como se pone una funcion en un dll y como se invoca
Posted: Thu May 10, 2007 01:13 PM
Antonio

Estou testando o babuDLLl e pcodeDLL.

Como passar Array ou Object como parametro para a DLL ?

Function Main1()

  local hItem1 := ItemNew( paSis  )       <<<- Array com 1032 elementos 
  local hItem2 := ItemNew( "Variavel do Config" )

  HbDLLEntry2( "Test", hItem1, hItem2 )

  ItemRelease( hItem1 )
  ItemRelease( hItem2 )
  
return nil


No babudll.prg eu pego a variavel, mas nao vem o conteudo de cada elemento ou nao estou sabendo acessar .. usando o ValType( cMsg1 )

// To build BabuDLL.dll do: buildhd.bat babuDLL
// To run this DLL, do buidh.bat Babu.prg

Function Test( cMsg1, cMsg2 )
  local n

  // result "OBject" e nao Array
  MsgInfo( ValType( cMsg1 ) )   // Object and not Array 

  For n := 1 TO Len( cMsg1 )       
     MsgInfo( cMsg1[n] , cMsg2 ) <-- vejo somente 1,2,3,4..6..7..8..9
  Next

return nil


Ari
Thanks,
Ari

FWH 2501 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como se pone una funcion en un dll y como se invoca
Posted: Thu May 10, 2007 01:32 PM

Ari,

Prueba esto:

MsgInfo( cMsg1:ClassName() ) // Object and not Array

para ver a que clase pertenece ese objeto

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion