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

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

Postby Vladimir Zorrilla » Mon Nov 06, 2006 6: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
Vladimir Zorrilla
 
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Postby Antonio Linares » Mon Nov 06, 2006 9:23 pm

Vladimir,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

sobre un prg

Postby Vladimir Zorrilla » Tue Nov 07, 2006 2:49 pm

el programa a poner en el dll es un archivo prg


Gracias
ME INTERESA FW Y XHB POR SER OPEN SOURCE
Vladimir Zorrilla
 
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Postby Antonio Linares » Tue Nov 07, 2006 4: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Ari » Thu May 10, 2007 1:13 pm

Antonio

Estou testando o babuDLLl e pcodeDLL.

Como passar Array ou Object como parametro para a DLL ?

Code: Select all  Expand view  RUN

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  Expand view  RUN

// 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
Ari
 
Posts: 236
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Postby Antonio Linares » Thu May 10, 2007 1: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 61 guests