PDA

Ver la Versión Completa : Retornar valores al programa inicial


verde_esmeralda
28-08-2014, 18:11:20
Hola, que tal, espero me pudieran ayudar, mi cuestión es la siguiente, tengo dos programas,
uno de ellos manda llamar al otro programa, este segundo programa realiza
su procesamiento, pero necesito que este segundo le regrese valores al programa que lo mando llamar,
utilice variables de ambiente, pero los valores son nulos, :confused: , no se si esto es posible :(

mamcx
28-08-2014, 18:44:33
Y como llamas al segundo programa?

verde_esmeralda
28-08-2014, 18:56:19
Mira es con esta linea :

if( spawnl(P_WAIT,"programa2", "programa2",NULL) == -1 )
{
ShowMessage("No pude ejecutar programa2");
exit(1);
}

Casimiro Notevi
28-08-2014, 19:22:40
Recuerda poner los tags al código fuente, ejemplo:

http://www.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)

ecfisa
28-08-2014, 20:24:53
Hola verde_esmeralda.

La función spawnl devuelve el valor entregado por el proceso invocado o el valor -1 y la variable erno encendida si hubo un error.

Es decir que si tenemos pru.exe compilado del código:

int main() {
return 1559; /* valor de retorno */
}


Y lo invocamos con la función spawnl de este modo:

#include <stdio.h>
#include <process.h>
#include <errno.h>

int main() {
int res = spawnl(P_WAIT, "PRU.EXE", "PRU.EXE", NULL);

if (res == -1) /* ¿ Hubo error ? */
perror("Error"); /* Mostrarlo */
else /* Todo ok */
printf("pru.exe finaliza con el valor: %d", res); /* 1559 */

printf("\n\nPulse Enter para finalizar");
while ((getchar())!='\n');
return 0;
}

Nos mostrará un mensaje con el valor 1559 u otro de error (de haber sucedido uno).

Saludos :)

verde_esmeralda
28-08-2014, 21:14:55
Gracias ecfisa,
Lo que pasa es que se que la instrucción spawnl solo admite valores enteros, es lo que tengo entendido,
pero necesito regresar mas de un valor al programa que manda llamar al otro,
y estos valores son de tipo cadena, es por eso que intente mandarlas como variables de ambiente,
pero el programa origen las recibe vacías.