Page 1 of 1

Como se pone una funcion en un dll y como se invoca

Posted: Mon Nov 06, 2006 6:12 pm
by Vladimir Zorrilla
Estimados Amigos

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



Saludos

Vladimir Zorrilla Llerena

Posted: Mon Nov 06, 2006 9:23 pm
by Antonio Linares
Vladimir,

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

sobre un prg

Posted: Tue Nov 07, 2006 2:49 pm
by Vladimir Zorrilla
el programa a poner en el dll es un archivo prg


Gracias

Posted: Tue Nov 07, 2006 4:08 pm
by Antonio Linares
Vladimir,

Revisa los siguientes ejemplos de FWH:

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

Posted: Thu May 10, 2007 1:13 pm
by Ari
Antonio

Estou testando o babuDLLl e pcodeDLL.

Como passar Array ou Object como parametro para a DLL ?

Code: Select all


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 )

Code: Select all


// 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

Posted: Thu May 10, 2007 1:32 pm
by Antonio Linares
Ari,

Prueba esto:

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

para ver a que clase pertenece ese objeto