Я создаю поток, который принимает в качестве параметра dispatchInputs, который является массивом CString
но в то время как мне нужно использовать «env» в функции DispFrontEnd, может ли поток использовать глобальную переменную «env»? если нет, то как я могу передать его в качестве аргумента в DispFrontEnd?
static JNIEnv *env;
static JavaVM *jvm;
JNIEnv* startJVM()
{
JNIEnv *env;
JavaVM * jvm;
env = create_vm(&jvm);
if ( env == NULL) { logloc->LogDebug("1env == NULL ******************");}
return env;
}
env = startJVM();
hDispThread = (HANDLE)_beginthread(DispFrontEnd,0,(void *)dispatchInputs);
static void DispFrontEnd(void * indArr)
{
CString str;
CString dest[56];
char* orig_idx_ptr = reinterpret_cast(indArr);
int array_size = 56;
memcpy(dest, orig_idx_ptr, array_size);
str.Format("DISPATCH INPUTS: (Trace Detail)[%s] (Session State ID)[%s] (SessionID)[%s] (MediaTypeID)[%s] (MediaCode)[%s] (5)[%s] (6)[%s] (7)[%s] (8)[%s] (9)[%s] (10)[%s] (11)[%s] (12)[%s] (13)[%s] " , dest[0], dest[1], dest[2], dest[3], dest[4], dest[5], dest[6], dest[7], dest[8], dest[9], dest[10], dest[11], dest[12], dest[13]);
logloc->LogMethod(str );
if (env != NULL)
{
jclass clsR = NULL;
jclass arqClass = NULL;
jclass messageToHostClass = NULL;
jobject jobjRetData = NULL;
jobjectArray jobjWOArr = NULL;
jobjectArray getResponseArray = NULL;
jmethodID getResponse = NULL;
jmethodID getMessageToHost = NULL;
arqClass = env->FindClass("BizB/Arq");
}
Tks
Rev