Fecha actual Mar Jul 01, 2025 6:04 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: Jue Oct 12, 2006 11:49 pm 

Registrado: Jue Oct 12, 2006 11:40 pm
Mensajes: 6
Hola a todos :D

Hola Bruno, es posible que _retl() no pirule bien?

Me explico, la función que tiene el _retl() no devuelve un valor lógico sino numérico!!
:shock: :?


Arriba
 Perfil  
Responder citando  
NotaPublicado: Vie Oct 13, 2006 1:02 am 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
manuexposito escribió:
Hola a todos :D

Hola Bruno, es posible que _retl() no pirule bien?

Me explico, la función que tiene el _retl() no devuelve un valor lógico sino numérico!!
:shock: :?


Hola Manu.

Aviso, no soy experto en C !!!!!

Pero mira:

_retl()
Post a logical return value
------------------------------------------------------------------------------
C Prototype

#include "extend.api"
void _retl(
int iLogical
)

Arguments

iLogical is an integer type that represents the logical value to be
returned. A value of zero is interpreted as false (.F.). Any other
value is interpreted as true (.T.).

Returns

_retl() has no return value.

Description

_retl() posts a logical value into CA-Clipper's return value area. When
your Extend routine returns control to the calling CA-Clipper program,
the posted value becomes the CA-Clipper return value of your Extend
routine.

Examples

. From C:

_retl(1);

. From Assembly language:

EXTRN __retl:FAR
mov ax, 1
push ax
call __retl
add sp, 2 ; reset stack pointer


Me parece que lo que tiene que devolver es un entero.

Saludos!!!

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 13, 2006 11:15 am 

Registrado: Jue Oct 12, 2006 11:40 pm
Mensajes: 6
No, eso ya lo sé. Pero creo que te confundes...
El parámetro que necesita _retl() puede ser un entero pero me refiero a lo que mete en la pila para que lo tome el programa... me explico con un ejemplo:

En el PRG:

function main()
MessageDlg( ValType( lPrueba() ), mtCustom )
return( nil )

En C:

CLIPPER LPRUEBA()
{
_retl( 1 );
}

//-----------------

El ValType debería devolver "L" y no "N"... :?


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 13, 2006 1:48 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
manuexposito escribió:
No, eso ya lo sé. Pero creo que te confundes...
El parámetro que necesita _retl() puede ser un entero pero me refiero a lo que mete en la pila para que lo tome el programa... me explico con un ejemplo:

En el PRG:

function main()
MessageDlg( ValType( lPrueba() ), mtCustom )
return( nil )

En C:

CLIPPER LPRUEBA()
{
_retl( 1 );
}

//-----------------

El ValType debería devolver "L" y no "N"... :?


Hola, de nuevo, Manu.

Te cuento.

He realizado la siguiente prueba:

CLIPPER LAND()
{
_retl( ( _parnl( 1 ) & _parnl( 2 ) ) != 0 );
}

... y me devuelve .T. ó .F., dependiendo de los parametros, claro.

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 13, 2006 6:42 pm 

Registrado: Jue Oct 12, 2006 11:40 pm
Mensajes: 6
OK, estaré haciendo algo mal yo!!! :roll:


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 13, 2006 7:25 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
manuexposito escribió:
OK, estaré haciendo algo mal yo!!! :roll:


Hola, Manu.

Mira a ver si 'los tiros' van por el lado de que tienes que hacer una comprobación lógica, esto es, si mira la funcion lAnd() verás que hace:

( ... == 0 )

y tu estas poniendo

_retnl(1)

no tedrias que poner:

_retnl( <lo que sea> == 1 )

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a: