Estoy tratando de asignar un puntero como variable pública de un proceso. Éste es el código:
DECLARE PROCESS proceso()
PUBLIC
proceso POINTER puntero;
End
End
PROCESS Main()
Private
Int IDproceso;
End
Begin
IDproceso=proceso();
write(0,100,100,0,*IDproceso.puntero);
Repeat
frame;
Until(key(_esc))
End
PROCESS proceso()
Private
Int a=10;
End
Begin
puntero=Alloc(sizeof(INT));
puntero=&a;
End
Cuando lo ejecuto, me devuelve el error unkown identifier. ¿Alguien sabe qué hago mal? ¡Gracias!
en que linea?
por otro lado, cuando el proceso muere todas las variables propias de el, tambien lo hacen, asi que ese codigo no te funcionara, con &a, si con el alloc.
El error sale en la línea write. He modificado el código teniendo en cuenta lo que me has dicho, pero el error sigue siendo el mismo (también probé a definir la variable a como global, con el mismo resultado):
DECLARE PROCESS proceso()
PUBLIC
proceso POINTER puntero;
End
End
PROCESS Main()
Private
Int IDproceso;
End
Begin
IDproceso=proceso();
write(0,100,100,0,*IDproceso.puntero);
Repeat
frame;
Until(key(_esc))
End
PROCESS proceso()
Private
Int a=10;
End
Begin
puntero=Alloc(sizeof(INT));
puntero=&a;
loop
frame;
End
End
copia el mensaje exacto, y pon el archivo .import que estas usando.
puede que te falte algun modulo incluir, tambien puede que el error sea que me parece que no se puede definir un puntero al mismo proceso, las variables de tipo <proceso> solo sirven para referencias al proceso, no tienen que ser pointer.
para acceder a puntero, IDProceso esta mal definida, debe ser
Private
proceso IDproceso;
End
pero ahi ya tenemos mal definida proceso, deberia ser
DECLARE PROCESS proceso()
PUBLIC
int POINTER puntero;
End
End
Vale, todo arreglado :) Adjunto el código correcto:
DECLARE PROCESS proceso()
PUBLIC
Int POINTER puntero;
End
End
PROCESS Main()
Private
proceso IDproceso;
End
Begin
IDproceso=proceso();
write(0,100,100,0,*(IDproceso.puntero));
//Muestra en pantalla el número 69
Repeat
frame;
Until(key(_esc))
End
PROCESS proceso()
Private
int a=69;
End
Begin
puntero=Alloc(sizeof(STRING));
puntero=&a;
loop
frame;
End
End
me alegro... ;)