Page 1 of 1

Variable publica gcc

PostPosted: Thu Aug 16, 2012 4:20 pm
by jgayoso
Consulta:

Necesito inicializar una variable publica en C al iniciar mi aplicativo y cargarla con un valor, después seguir normalmente mi aplicativo y cuando la necesite pasarla a las rutinas de c que tengo en el sistema.

JNIEnv* env = create_vm()

la variable "env" es la que quiero que sea publica, así la maquina virtual de Java siempre esta abierto y la utilizo cuando quiera, solo voy cambiando las clases a utilizar.

¿Es factible hacer esto y como?

Re: Variable publica gcc

PostPosted: Thu Aug 16, 2012 6:06 pm
by Antonio Linares
Jorge,

Puedes hacerlo sin problema:

Code: Select all  Expand view

#pragma BEGINDUMP
           
            #include <stdio.h>
           #include <jni.h>
            #include "fasaJpos.c"
           
            JNIEnv* env = NULL;

            HB_FUNC( FASAPRINT )
            {
 
                                   jclass clase;
                                   jobject obj;
                                   int out;
                                   int i;
                                   char linea[80];
 
                        //esta comprobacion tienes que hacerla siempre antes de usar env
                                   if( env == NULL )
                                      env = create_vm();

                                  continua tu codigo...
 

opcionalmente puedes declararla como static si quieres no hacerla accesible a otros modulos en C:

static JNIEnv* env = NULL;