I have for work to modify an old dll written in 2005 in c++. I have installed Eclipse Oxygen, cygwin with gcc, gdb and make.
I have searched in many places, made many changes in my project properties but my problem is here anyway : I have 5 errors "Invalid Arguments".
my code :
#include <jni.h>
#include "core_dll_ModDriver.h"
#include <stdio.h>
#include <iostream>
JNIEXPORT jobjectArray JNICALL Java_core_dll_ModDriver_EtatSupport(JNIEnv * env, jobject o)
{
    const int nbFen = 4;
    const char FAR* name = "EtatSupport";
    char* fen1 = NULL;
    char* fen2 = NULL;
    char* fen3 = NULL;
    char* fen4 = NULL;
    loadDll();
    if ( isDllLoaded() )
    {
        typedef unsigned char ( __stdcall * Function)( char*, char*, char*, char* );
        Function function = (Function)getDllFunction( name );
        if ( function != NULL )
        {
            char error = function ( fen1, fen2, fen3, fen4 );
        }
        else
            std::cout << "echec" << name;
        closeDll();
    }
    jobjectArray result = env->NewObjectArray( nbFen, env->FindClass("java/lang/String"), NULL );
    jstring jfen1 = env->NewStringUTF( fen1 );
    jstring jfen2 = env->NewStringUTF( fen2 );
    jstring jfen3 = env->NewStringUTF( fen3 );
    jstring jfen4 = env->NewStringUTF( fen4 );
    env->SetObjectArrayElement( result, 0, jfen1 );
    env->SetObjectArrayElement( result, 1, jfen2 );
    env->SetObjectArrayElement( result, 2, jfen3 );
    env->SetObjectArrayElement( result, 3, jfen4 );
    return result;
}
And I have "Invalid Arguments" with NewObjectArray, and all SetObjectArray.
Line 27 Invalid arguments' Candidates are : _jobjectArray * NewObjectArray(?,_jclass *,_jobject *)' Line 33,34,35,36 Invalid arguements' Candidates are : void SetObjectArrayElement(_jobjectArray *,?,_jobject *)'
 
    