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

Post Reply
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

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

Post 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
ME INTERESA FW Y XHB POR SER OPEN SOURCE
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Vladimir,

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

Antonio Linares
www.fivetechsoft.com
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

sobre un prg

Post by Vladimir Zorrilla »

el programa a poner en el dll es un archivo prg


Gracias
ME INTERESA FW Y XHB POR SER OPEN SOURCE
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Vladimir,

Revisa los siguientes ejemplos de FWH:

babu.prg
babudll.prg
testdll.prg
testdllp.prg
pcodedll.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
Post Reply