Sr. Antonio me ajude com esta declaração em VB

Sr. Antonio me ajude com esta declaração em VB

Postby MGA » Wed Jul 15, 2009 9:12 pm

Sr. Antonio, tenho esta declaração em VB:

Public Declare Function radio_recv5 Lib "RioCom" (ByRef Funcao As Long, ByRef terminal As Long, ByRef Licenca As Long, ByRef Msg As Long, ByRef Pratos As Long, ByRef Mesa1 As Long, ByRef Mesa2 As Long, ByRef AuxData As Long, ByRef Lugar1 As Long, ByRef Lugar2 As Long, ByVal addr_plus As Long, ByVal addr_qtds As Long, ByVal st_mesa1 As String, ByVal st_mesa2 As String) As Long

Declarei para FIVEWIN:

DLL FUNCTION radio_recv5( Funcao AS LONG,;
terminal AS LONG,;
Licenca AS LONG,;
Msg AS LONG,;
Pratos AS LONG,;
Mesa1 AS LONG,;
Mesa2 AS LONG,;
AuxData AS LONG,;
Lugar1 AS LONG,;
Lugar2 AS LONG,;
addr_plus AS LONG,;
addr_qtds AS LONG,;
st_mesa1 AS STRING,;
st_mesa2 AS STRING) AS LONG PASCAL LIB "riocom.dll"

No exemplo em VB de utilização desta função esta assim:

Dim p_plus(100) As Long
Dim p_qtds(100) As Long

addr_plus = VarPtr(p_plus(0))
addr_qtds = VarPtr(p_qtds(0))
radio_recv5(p_funcao, p_terminal, p_licenca, p_msg, p_pratos, p_mesa1, p_mesa2, p_auxdata, p_lugar1, p_lugar2, addr_plus, addr_qtds, st_mesa1, st_mesa2)

Minha dúvida esta na variaveis:
addr_plus
addr_qtds

Como fazer isto em FIVEWIN?
ubiratanmga@gmail.com

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Sr. Antonio me ajude com esta declaração em VB

Postby Antonio Linares » Thu Jul 16, 2009 7:22 am

SGS,

Try this change:

... @addr_plus AS PTR, @addr_qtds AS PTR, ...

Those values have to be supplied by reference
regards, saludos

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

Re: Sr. Antonio me ajude com esta declaração em VB

Postby MGA » Thu Jul 16, 2009 11:20 am

Sr. Antonio,

E como declarar estas variaveis:
addr_plus
addr_qtds
e passar elas para função:

addr_plus:= ???
addr_qtds:= ???

radio_recv4( @p_funcao,;
@p_terminal,;
@p_licenca,;
@p_msg,;
@p_pratos,;
@p_mesa1,;
@p_mesa2,;
@p_auxdata,;
@p_lugar1,;
@p_lugar2,;
@addr_plus,;
@addr_qtds,;
st_mesa1,;
st_mesa2)

Segue o que diz o manual da DLL:

Função :
int stdcall radio_recv3(int *Funcao,int *Terminal, int *Licenca,int *MsgNumber,int *Pratos,int *Mesa1,int *Mesa2, int *AuxData,int *lugar1,int *lugar2,int *plus,int *qtds)

int *plus é um apontador para um array de inteiros de 32 bits. <-Sr Antonio - addr_plus
int *qtds é um apontador para um array de inteiros de 32 bits. <-Sr Antonio - addr_qtds

Por favor Sr. Antonio estou precisando muito disso!
ubiratanmga@gmail.com

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Sr. Antonio me ajude com esta declaração em VB

Postby MGA » Thu Jul 16, 2009 5:09 pm

Sr. Antonio, pode me ajudar por favor!

Como usar esta função que foi declarada?
ubiratanmga@gmail.com

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Sr. Antonio me ajude com esta declaração em VB

Postby Antonio Linares » Thu Jul 16, 2009 5:17 pm

addr_plus:= 0
addr_qtds:= 0
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 94 guests