FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Sr. Antonio me ajude com esta declaração em VB
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

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

Posted: Wed Jul 15, 2009 09: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

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

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

Posted: Thu Jul 16, 2009 07: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
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

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

Posted: 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

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

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

Posted: Thu Jul 16, 2009 05:09 PM

Sr. Antonio, pode me ajudar por favor!

Como usar esta função que foi declarada?

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

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

Posted: Thu Jul 16, 2009 05:17 PM

addr_plus:= 0
addr_qtds:= 0

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion