Je veux appeler ma DLL C++ avec JNI dans mon projet java. Mais il y a une erreur bizarre: 'UnsatisfiedLinkError: Accès invalide à l'emplacement mémoire'. Et mon environnement est: Windows xp sp3, jdk 1.7.0_01 (et jdk 1.6.23), studio vistual 2010. Mais je le fais en win7 (64bit) (avec le même projet et le même jdk & vs2010) il n'y a pas d'erreur . J'ai utilisé Dependcy Walker pour vérifier la DLL et il n'y a pas d'erreur de dépendance. Donc je suis très perplexe. Que devrais-je faire?JNI appel C++ dll s'est produit 'UnsatisfiedLinkError: Accès non valide à l'emplacement de la mémoire'
3
A
Répondre
1
Je suppose que vous essayez d'utiliser la même DLL dans les deux environnements? Si c'est le cas, votre DLL doit être compilée en tant que DLL 32 bits et vous devez utiliser une JVM 32 bits sur Win7-64. Vous pouvez envisager d'expédier à la fois une version 32 et 64 bits de votre application Java et de charger dynamiquement la bibliothèque appropriée. Si vous êtes sûr que vous n'avez pas de conflit 32/64-bit, veuillez fournir plus d'informations sur ce qui échoue.
Questions connexes
- 1. JNI UnsatisfiedLinkError
- 2. Un autre problème DLL JNI UnsatisfiedLinkError
- 3. Java JNI UnsatisfiedLinkError
- 4. JNI, C++, DLL, UnsatisfiedLinkError <Native Method>
- 5. UnsatisfiedLinkError JNI
- 6. JNI UnsatisfiedLinkError et types d'analyse
- 7. PKCS # 11 Java - Accès non valide à l'emplacement mémoire
- 8. JNI et Android ... UnsatisfiedLinkError
- 9. Win 7 DllImport C# Erreur étrange, Accès non valide à l'emplacement de la mémoire?
- 10. JNI UnsatisfiedLinkError .jnilib not fon
- 11. UnsatisfiedLinkError - comment créer la DLL C++?
- 12. JNI - UnsatisfiedLinkError - loadLibrary échoue toujours
- 13. JAVA Tess4j doOCR() non Workin, exception "accès mémoire non valide"
- 14. Accès aux fonctionnalités de la DLL JNI via ColdFusion
- 15. Appel JNI C++ vers Java qui appelle JNI vers une DLL C++ différente
- 16. Appel d'une DLL à partir d'une applet via JNI
- 17. Accès mémoire non valide de l'emplacement avec Rococoa
- 18. produit non valide
- 19. UnsatisfiedLinkError + JNLP + Applet + DLL
- 20. JNI Appel JavaGUI à partir de C++
- 21. L'application Java appelle la DLL C++ via JNI; comment mieux allouer de la mémoire?
- 22. UnsatisfiedLinkError "Accès refusé" même avec contrôle total
- 23. Accès mémoire non valide pour JavaFX ScrollBar sur Snow-Leopard
- 24. Appel de C# dll dans vbscript
- 25. fonction dll appel C de
- 26. Le chargement natif fonctionne bien. Chargement à partir de .net donne l'erreur Impossible de charger la DLL 'my.dll': Accès non valide à l'emplacement de la mémoire
- 27. Accès à la mémoire protégée en C# via COM interop
- 28. Windows Azure Emulator "Accès non valide à l'emplacement de la mémoire."
- 29. Accès à l'accès croisé non valide
- 30. appel fonction non-DLL de la fonction DLL
Avez-vous essayé de réinstaller le JDK? –
Oui, j'ai rajouté les deux versions de JDK mais elle n'était pas disponible non plus. – bony
Ceci est clairement un problème avec votre Java. Vérifiez si vous avez toutes les exigences nécessaires installées, vous avez tous les correctifs et vous installez la version 32 bits de JDK. Essayez de l'exécuter sur une installation XP SP3 propre. –