Bonjour à tous
Voici mon problème. Il y a quelques temps, j'avais écrit une librairie C++ sous Linux qui compilait sans erreurs ni warnings avec g++.
Il m'a été demandé de recompiler ce code sous Windows x86 avec Visual C++ Express 2005. Autant, j'ai de l'expérience avec g++, autant je vous avoue que coder sous Visual C++ tient pour moi de l'aventure.
Donc, j'importe mon projet sous Visual C++ et je lance la compilation. Gasp ! Que d'erreurs et warnings !!!
Par exemple, considérons la fonction suivante (qui plus est c'est une librairie faisant appel à JNI pour Java) :
Dans cette méthode, je me choppe les erreurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 JNIEXPORT void JNICALL Java_com_bioxpr_linkers_BeaconPCR_getLine(JNIEnv *env, jobject object, jint a, jobjectArray string){ //Ceci avait été écrit avant et fonctionnait sous Linux //const char *args[a]; //Modification pour Win mais sans doute fausse const char *args[] = new char[a]; for (int i=0; i<a; i++){ jstring jstr = (jstring)env->GetObjectArrayElement(string, i); args[i] = env->GetStringUTFChars(jstr, 0); } FindBeacon(a, args); }
Quelqu'un peut-il m'aider à trouver la voie ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 error C2440: 'initializing' : cannot convert from 'char *' to 'const char *[]' There are no conversions to array types, although there are conversions to references or pointers to arrays
Merci d'avance de votre aide.
@++
Partager