FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Pasar variable por referencia a una funcion en C
Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM
Pasar variable por referencia a una funcion en C
Posted: Fri Jun 26, 2009 11:37 AM

Muy buenas, tengo un problema necesito pasar una variable por referencia a una función en C, el ejemplo sería mas o menos así, pasar nLong por referencia a WSAStartup y que nLong lo modifico en la funcion en C y en FIVEWIN tenga el valor -2.

¿Como puedo hacerlo?

function main()
local nWsaError:=0,nLong:=-1
WSAStartup(@nLong)
msginfo(nLong) // DEBERIA DE MOSTRAR -2 pero no lo consigo

return

// FUNCION EN C

ifdef HARBOUR

HARBOUR HB_FUN_WSASTARTUP( PARAMS )

else

CLIPPER WSASTARTUP( PARAMS )

endif

{
WSADATA wsa;
LONG nLong;
nLong = -2;
_retni( WSAStartup( MAKEWORD(2,0), &wsa ) );
}

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Pasar variable por referencia a una funcion en C
Posted: Fri Jun 26, 2009 01:21 PM
Saludos Softruz

Intenta de esta forma

Code (fw): Select all Collapse
Function Main()

   local nWsaError:=0, nLong:=-1

   WSAStartup( @nLong )
   MsgInfo( nLong )
  
return



#ifdef __HARBOUR__
HARBOUR HB_FUN_WSASTARTUP( PARAMS )
#else
CLIPPER WSASTARTUP( PARAMS )
#endif
{
   WSADATA wsa;
   LONG nLong;
   nLong = -2;
   _stornl( nLong, 1 );
   _retni( WSAStartup( MAKEWORD(2,0), &wsa ) );
}
Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM
Re: Pasar variable por referencia a una funcion en C
Posted: Fri Jun 26, 2009 03:58 PM

Gracias funciona así pero, ¿sabrías como hacer lo mismo con un HANDLE?

Un Saludo.

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Pasar variable por referencia a una funcion en C
Posted: Fri Jun 26, 2009 05:48 PM

Saludos...

Teoricamente igual...

deberias pasar un segundo parametro

_stornl( nHandle, 2 ) // el 2 sigifica el segundo parametro que lo deberias pasar a la funcion

Continue the discussion