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 :

Import d'une fonction à nombre de paramètres variable


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Import d'une fonction à nombre de paramètres variable
    Bonjour à tous!

    J'ai une colle que personne dans mon entourage n'a encore put résoudre pour l'instant... Il est vrai que le cas ne se présente pas souvent, mais je viens de le rencontrer ce matin, et sa résolution est critique pour moi!

    Voici donc le problème: J'ai une DLL tiers fournie tel quel. Dans cette DLL, j'ai une fonctions déclarée de cette manière (En C++):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WORD MaFonction(BYTE Param1, DWORD Param2, [b]...[/b])
    Oui, le nombre de paramètres est indéfini! Je ne savais même pas que c'était possible dans une DLL!

    Je dois aujourd'hui importer cette fonction dans mon application Delphi, mais je ne vois vraiment pas comment la déclaré dans mon unité!

    Quelqu'un à une idée?

    Merci d'avance
      0  0

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Peut être un Array ? Un array de pointeur ?

    Bonne chance !
      0  0

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    J'y ai pensé, mais comment connaître le nombre de paramètres dans un tableau de pointeurs? Il faudrait rajouter le nombre de paramètres à récupérer, mais là on s'écarte franchement de la définition qui est donnée dans la DLL!

    Je vais essayer et je te dirait ce qu'il en retourne, merci de ta proposition!
      0  0

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Un tableau de variant est peut être plus approprié, le tableau de pointeur ne contient pas le type de la donnée :
    http://www.developpez.net/forums/vie....php?p=2568084
      0  0

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Merci pour ces proposition!

    J'ai peur de ne pas avoir le temps de tester aujourd'hui, car j'ai tout ce qu'il vient avant à implémenter et à tester!

    Mais ne vous inquiètez pas, vous aurez un résultat d'ici Lundi!!

    En espèrant qu'un des solutions proposées ici fonctionne!

    Bien à vous et bon week end!
      0  0

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Mukahya
    En espèrant qu'un des solutions proposées ici fonctionne !
    Pas de soucis de ce coté là, reste à savoir si elles sont adaptées à ton contexte.
    Citation Envoyé par Mukahya
    bon week end!
      0  0

  7. #7
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    :trouve:
    Citation Envoyé par l'Aide Delphi
    Quand vous importez une fonction C qui prend un nombre variable de paramètres, utilisez la directive varargs. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function printf(Format: PChar): Integer; cdecl; varargs;
    La directive varargs fonctionne uniquement avec des routines externes et uniquement avec la convention d'appel cdecl.

    Pour info la rubrique de l'aide Delphi s'appelle : Déclarations externes

    Voilà, voilà...
    Bidouilleuse Delphi
      0  0

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut

    [edit]
    J'étais à coté de la plaque je pensais que c'était uniquement sous Delphi
      0  0

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Honètrement, ce n'était pas évident de trouver la réponse. Je suis d'acord avec Laurent Dardenne. Bravo.
      0  0

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Bonjour à tous,

    Il semblerait que la méthode décrite par waskol (bravo pour la trouvaille!!) fonctionne dans mon cas. De plus, je voudrait vous indiquer que la même déclaration en stdcall fonctionne également!

    Je n'ai pas put faire de tests poussé pour vérifier que la procédure est exécutée correctement, car la fonction est un peu opaque, mais les résultats semblent être en adéquation avec ce que j'obtiens sous Visual C++

    Bravo messieurs (dames) et merci encore!
      0  0

  11. #11
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    Bonjour,

    Je suis en train de travailler un peu sur la même chose. voir

    http://www.developpez.net/forums/vie...738043#2738043

    Et je suis bloqué avec ce nombre de paramètre et de type indéfini
    Je n'arrive pas à mettre en oeuvre ma fonction avec le VarArgs. Qui d'ailleur n'est pas mentionné dans mon aide de delphi 6 ;(

    Pourriez vous s'il vous plait me poster le début de cette fonction et la manière dont vous l'appellait.

    Merci beaucoup pour votre aide
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p
      0  0

  12. #12
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Merci d'éviter le multipost.
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Fonction qui renvoie un nombre de paramètres variables.
    Par abel413 dans le forum MATLAB
    Réponses: 7
    Dernier message: 24/07/2013, 09h29
  2. Fonction à nombre de paramètres variable
    Par Noufnouf dans le forum Scheme
    Réponses: 1
    Dernier message: 06/04/2011, 11h01
  3. parametres d'une fonction : nombre variable de parametres
    Par KINENVEU dans le forum Général Python
    Réponses: 5
    Dernier message: 20/01/2009, 20h54
  4. Réponses: 2
    Dernier message: 05/09/2007, 09h22
  5. Nombre de paramètres variables pour une procédure [SQLSERVER2005]
    Par chti_vince dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/07/2007, 11h59

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