Je gère projet JNI pour les compilateurs: MSVC++ 8.0 et 9.0, mon fichier cpp contient suivant la mise en œuvre: extern "C" { JNIEXPORT de JNICALL Java_context_ServiceProviderContext_StartServiceProvider (JNIEnv * env, JClass, jstring jspath) { ..... }extern "C" n'a pas d'effet dans msvC++ 9.0
Avec l'aide de l'utilitaire depends.exe je peux voir que MSVC 8.0 exporte avec succès la fonction comme il est prévu: Java_context_ServiceProviderContext_StartServiceProvider Mais la compilation sous MSVC 9.0 me rend fou il exp orts comme ignorer extern "C" du tout. depends.exe me montre: _Java_context_ServiceProviderContext_StartServiceProvider @ 12
Quelqu'un sait-il ce que exactement 9.0 projet qui provoque ce comportement?
La description technique est que votre compilation 9.0 est un manquement de noms. C ne fait pas name-mangle (qui fait partie de ce que 'Extern C' dit au compilateur de faire). –
@ Paul Nathan - alors, quelle est votre recommandation? – Dewfy
Je n'ai pas de vraie réponse pour vous. Ça * sonne * comme un bug. Soit cela ou un drapeau doit être affirmé maintenant ... La seule chose que je peux penser à faire est de fouiller sur le MSDN et/ou d'appeler le support de Microsoft. –