IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Creation d'une API multi language


Sujet :

C++

  1. #1
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par d�faut Creation d'une API multi language
    Bonjour a tous,

    je cherche � creer une API sur l'un de mes soft (Celui-ci est ecrit en C++ et uniquement compatible Windows).
    Je voudrai que cette API puisse etre utilis� depuis different language comme Java, Python, C#, etc......

    La seule chose que j'ai trouv� pour l'instant est de faire mon API via ActiveX/COM.
    Malheureusement je ne trouve pas sa "clair et propre".

    Donc avez vous d'autres id�es sur les techno que je peux �tudier ?


    Je vous remercie d'avance pour votre aide

    PS: je ne sais pas si je post dans le bon forum. D�soler

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Salut,

    pourquoi ne pas ajouter une impl�mentation Rest � ton soft ?
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Il y a la JNI en java pour coder en C/ C++.
    C'est utiliser sur Android

    Ensuite, tu peux coder en C en python: Cython. Il y en peut-�tre d'autres "trucs".

    Tu peux regarder les biblioth�ques multi-plateformes comme Boost: Boost.Python
    Mais aussi MoSync SDK (Invoke C++ Code from JavaScript)

    Donc cela fait d�j� un petit paquet: une biblioth�que C/ C++ avec des morceaux en python et "des acc�s" en Java/ Python/ JavaScript ... mais ton application finale risque de morfler niveau d�pendance, performance, taille

    Le .Net je pense que c'est mort: ou alors il faut passer par du C++ manag�/ CLI

  4. #4
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par d�faut
    Citation Envoy� par Bousk Voir le message
    Salut,

    pourquoi ne pas ajouter une impl�mentation Rest � ton soft ?
    Je ne peux pas faire juste du REST...
    Le REST ne me permet pas de faire des chose complexes facilement.
    Le "without states" entre deux appels a l'API m'empeche de faire cela.

    -----------------------------------------------------------------------------------------------


    JNI --> Permet de faire des appels dans des DLL C++. Ok, pour les type simple, mais pour les objets plus complexe, cela fonctionne aussi ?

    Dans tous les cas, tu me dit que c'est a l'utilisateur de faire le binding vers son langage favoris.

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 33
    Par d�faut
    c'est quoi comme API, elle permet de faire quoi? c'est ind�pendant d'une instance de l'application?

    c'est a l'utilisateur de faire le binding vers son langage favoris
    Oui.

    Ya pas de truc universel. Les DLL c'est un peu un standard car ca vient de l'OS (windows), c'est la m�thode la plus simple mise a disposition par l'os pour partager du code. C'est pas li� a un language, on dit "DLL C" mais tu peux en �crire en VB ou meme en pascal il me semble. De ce fait tous les langages permettent d'appeller des fonctions dans des dll.
    T'as parl� d'exporter des trucs plus complexes je suppose que tu parles de classes, donc non, tu peux le faire, mais je ne te le conseil pas du tout, ca va cr�er beaucoup de probl�mes.
    Par contre tu peux exporter des interfaces, mais �videment ca r�duit les langages utilisables � ceux qui peuvent utiliser des interfaces.

    Pour ce qui est de COM, c'est une techno que j'affectionne beaucoup. C'est un des trucs les plus propres qui existe concernant le partage de code orient� object. La POO dans toute sa splendeur. C'est clair c'est pas simple au d�but, beaucoup de th�orie, pas beaucoup d'exemples, mais au final c'est pas tr�s compliqu�.
    Avantages :
    - Peu d'overhead
    - Utilisable par beaucoup de langages (pour peu qu'ils soient orient� objet)
    - Permet une extensibilit� remarquable (tant qu'il s'agit de c++)
    Inconv�nients :
    - Doit enregistrer les interfaces / composants dans le registre
    - Pas mal de code � �crire

    Pour conclure, je pense que dans ton cas il vaut mieux faire une DLL C. Ca sera utilisable partout, et c'est simple � r�aliser.

  6. #6
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par d�faut
    Ok, donc je vais voir pour faire cela en COM
    Merci a tous pour votre aide

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Hello !

    <gout personnel> Pour ma part, je n'aime pas beaucoup COM, car si les concepts derri�re sont int�ressants, �a n'est pas bien impl�ment� et �a utilise beaucoup trop de m�canismes runtime lorsqu'on en a pas besoin.</gout personnel> En plus c'est une techno ferm�e, pas ce qui se fait de mieux quand on veut ouvrir son API aux autres .

    Fournir des bindings en Python, Ruby, Java et autre sur un soft en C++ (ou en quoi que ce soit d'autre d'ailleurs) demande beaucoup de travail humain, car une API en C++ ne se traduit pas naturellement dans un autre langage. Tu peux automatiser facilement lorsqu'il s'agit de partager des donn�es (protobuf, thrift, serialisation json). Pour l'appel de proc�dure, c'est tout de suite plus compliqu� et n�cessite de se pencher sur la m�thode ad�quate pour chaque langage.

    Par contre je ne suis pas d'accord avec "l'utilisateur doit faire le binding pour son langage favori". Les bindings sont toujours de meilleure qualit� si produits par la m�me �quipe qui a impl�ment� l'API en dessous. Certe, un utilisateur peut toujours cr�er un binding. Mais si on cherche � ramener de nouveau utilisateurs, ce sera plus efficace en fournissant le dit binding !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 30/10/2012, 14h34
  2. Creation d'une API JAVA pour envoyer/recevoir des sms
    Par issiaga isaac dans le forum Multim�dia
    R�ponses: 1
    Dernier message: 04/07/2008, 16h02
  3. Creation d'une Application multi-utilsateur
    Par ninsekh dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 05/10/2007, 07h49
  4. [Recherche]Une api pour la creation de jeux 2D
    Par kedare dans le forum Graphisme
    R�ponses: 3
    Dernier message: 03/10/2006, 18h41
  5. creation d'une API
    Par dev007 dans le forum API standards et tierces
    R�ponses: 6
    Dernier message: 06/06/2006, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo