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

Langage Delphi Discussion :

Création d'une API


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut Création d'une API
    Salut à tous,

    J'aimerais avoir de l'aide pour écrire un ensemble de procédure qui pourront être
    utilisées par plusieurs applications.

    Je m'explique mieux, j'ai une application principale A qui marche bien et qui est déjà en exécution.
    Quelque temps plus tard je désire écrire une petite application b qui exécute des tâches non pris en compte dans par la première application mais je souhaite utiliser certaines procédures qui existe déjà dans A.

    Comment je m'y prend?

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    en mettant les fonctions dans une dll commune, probablement
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    tout depends de ce que tu souhaite faire reelement.

    On entends par API une unite proposant une serie de fonction/procedure de traitement generique comme par exemple une API mathematique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Unit MathAPI;
     
    Interface
     
    Function Somme(n1, n1 : Integer) : Integer; 
    Function multiply(n1, n2 : Integer) : Integer; 
    Fucntion Soustract(n1, n2 : Integer) : Integer;
     
    Implementation
     
    Fuction Somme(n1, n2 : Integer) : Integer;
    Begin
    Result := n1 + n2;
    End;
     
    [...]
    Si tu regrouppe le code commun de ton application A et de ton Application B dans ce genre d'unitees, tu peux les reutiliser mais de maniere independante.

    Si par contre tu souhaire "completer" le code de A par le code de B, il faloir que tu te penche sur la conception de Dll.

    Par contre, ton application doit charger et manipuler la Dll. ce qui sous entends qu'elle connait sa structure.

    Il faut donc que "A" formalise la gestion des traitements ulterieurs de maniere a ce que plus tard, tu charge la nouvelle Dll et que tu soit capable d'executer son contenu sans avoir a recompiler l'executable A

    B doit donc est une sorte de "plugin".
    Je te conseille l'excelent chapitre 7 du livre de paul toth que l'on retrouve dans la section Tutoriels de Delphi
    D'autres cours sont proposés ici est la sur le net a ce sujet ... si vase

  4. #4
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut OK
    Merci pour les références sur la documentation.
    J'ai pensée à faire une unité spéciale qui contient toutes les procédure et fonctions commune.
    Mon problème résidait dans comment faire utiliser cette unité par l'application b sans récompiler l'application A.
    Je vais lire la doc, je serai contente d'avoir une réference de docs pour la création des DLLs. Merci

  5. #5
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    j'ai pas tres bien compris ce que tu cherche a faire en fait :

    tu parles de 2 application distinctes mais : dialoguent elles ensemble ?

    Par ce que si tu utilise une Dll dans A et que tu utilise la meme Dll dans B, les 2 applications charegrons chacune une instance autonome de la Dll ...

    Donc en fait c'est comme pour les unitees.

    Si ce que tu veux faire est creer un pack de fonctions qui est utilisé dans A, pui que tu veux pouvoir utiliser dans B parce que les besoins sont identiques, tu peux utiliser les unitees. Ce n'est pas parce que tu change le code de l'unitee que ton executable A compilé changera. PAr contre, si tu dois modifier l'application A, faisant reference a ton unitee, provoquera des erreurs car le code de l'unitee a changé.
    Et encore, c'est uniquement si tu modifie les prototypes des fonctions deja utilisées et non le contenu ou que tu rajoutes des fonctions.

    Par contre si tu souhaite "completer" ton application A sans avoir a la recompiler, c'est a dire lui rajouter des fonctionnalités, la on tombe sous le coup de la Dll plugin.
    C'est une partie du code que l'on pourra modifier sans avoir a ercompiler le coeur de l'applciation.

  6. #6
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut Plus Claire
    En fait j'ai écris sous Delphi 6 une application de surveillance. Elle se charge de d'envoyer des SMS à des personnes précises dès qu'un des matériel ou des applications surveillées s'arrêtent.

    Actuellement on veut profiter pour surveiller d'autres caractéristiques comme les TableSpace des bases de données oracles qu'on utilise.
    On a donc écrit un petit programme de récupération des valeurs des tableSpace.

    Les deux applications sont donc distinctes. il est possible aussi que dans 2, 3, 5,.. ans on puissse avoir besoin de surveiller un autre matériel ou une autre application qui n'est pas pris en compte actuellement.
    Se serait pénible de tjrs avoir à retoucher la 1ère application qui marche déjà très bien.

    Les procédures de détections diffères suivant le matériel ou même la caractéristique concernée mais quand un dysfonctionnement est détecté, le processus de traitement reste le même.

    Il s'agit donc de pouvoir permettre à toutes les petites applic de détection d'utiliser un ensemble de procédures (contenus dans la 1ère application) pour stocker les dysfonctionnements qu'elles détectent.

    jspère avoir été un peu plus claire. Merci bcp pr votre intérêt

  7. #7
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Oui ca va mieux

    Mais j'ai pas encore compris l'imbication fondamentalle entre tes applciations.

    Ce que je peux dire c'est que la gestion de plugin peut etre bien vue.

    Si tu formalise bien le processus de manipulation des materiels tu peux creer une Dll qui recoit d'une certaine maniere les ordre de detection/manipulation.

    Chauqes Dll va ensuite detecter et piloter le materiel a sa maniere

    Pour utiliser plusieurs fonctions de l'applciation A par les petites applciaitons, soit c'est des fonctions qui n'on pas besoin que A tourne et tu peux effectivement les regroupper dans Des dlls pour y acceder.

    Maintenant si elles sont besoin de "piloter" l'application A pour y recuperer des infos, soit tu utilise un systeme plus complexe de communications inter applciations, soit tu transforme ces applications en modules (plugin) qui rajoute ces fonctiosn de surveillance a l'applciation A.

    LE tout est de bien cerner et cibler les besoins et leurs evolutions au moment du developpement de A ... sous peine d'avoir a tout recompiler plus tard

Discussions similaires

  1. Création d'une API
    Par biyong dans le forum IGN API Géoportail
    Réponses: 0
    Dernier message: 17/04/2013, 12h23
  2. Création d'une API
    Par spottt dans le forum C#
    Réponses: 4
    Dernier message: 26/04/2012, 14h16
  3. Création d'une API
    Par worolf dans le forum Langage
    Réponses: 1
    Dernier message: 28/04/2008, 15h25
  4. Création d'une API / documentation
    Par oodini dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/12/2007, 23h01
  5. Création d'une API
    Par titoine1978 dans le forum C++
    Réponses: 7
    Dernier message: 12/11/2007, 12h14

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