accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

encpsulation de classes C++ en java

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.java ] 

Retour : Accueil du site fr comp lang java   charte stats de ce groupe


  Sujet:   encpsulation de classes C++ en java  
 De: philippe.mesm...@free.fr
 Groupes: fr.comp.lang.java
 Organisation: http://groups.google.com
 Date: 10. Apr 2008, 06:33:10
Bonjour à tous,

Tout d'abord, je vous explique que je suis un pur débutant en Java,
donc merci de ne pas vous affliger si ma question est simplissime ou
n'a aucun sens.


Voila, j'ai besoin à partir d'une application Java d'utiliser, piloter
une classe C++ fournie par une DLL.

A ce que j'ai pu voir, je dois utiliser JNI. Cependant, celui-ci va me
permettre de faire des appel à des fonctions C, compilées avec un
compilateur C++, c'est à dire utilisant les convention de nommage et
d'appel C++.

Par contre, je ne sais pas s'il est possible d'instancier et utiliser
des classes C++ directement via Java. La seule solution que je vois
est de passer par des fonctions C:
- une fonction create qui va instancier ma classe et me renvoyer un
int contenant l'adresse de l'objet crée
- autant de fonctions C que de méthodes de la classe à encapsuler.
Chaque méthode prenant en paramètre l'int renvoyé par la fonction
create ainsi que les mêmes paramètres que la fonction à encapsuler
- une méthode destroy prenant en paramètre l'int renvoyé par la
fonction create

Cette façon de faire ne me satisfait pas vraiment: connaissez vous une
façon plus élégante de piloter des objets C++ via Java, pour pouvoir
faire quelque chose comme:

class MyCppCaller {

...

  private void callFunction() {
    m_myCppObject.Function();
  }

...

  public static void main(String args[]) {
     new MyCppCaller().callFunction();
  }


...

  static { System.loadLibrary("MyCppLibrary"); }

  private:
    MyCppClass m_myCppObject;
}


Merci d'avance pour votre aide.


DateSujet  Auteur
01.01.
o 
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)