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

Delphi Discussion :

Adresse memoire d'une fonction


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Adresse memoire d'une fonction
    Lut 'All
    ca fait un bout de temp que jcherche comment appeller une fonction depuis son adresse memoire , sans rien trouver de bien precis .
    Voila si quelqu'un pourrais m'expliquer un peu ca ;
    mERCI

  2. #2
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Salut!

    L'opérateur @ te permet d'avoir l'adresse de ce que tu cherches.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var
      Ptr: Pointer;
    begin
      Ptr := @MaProcedure; //Ptr contient désormais l'adresse de MaProcedure
    end;
    Si tu veux faire le chemin inverse (appeller la procedure par son adresse) tu dois transtyper le pointer en procedure et pour faire ça du devras déclarer le type de la procédure appellée (signature).

    J'y vais de mémoire :

    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
    type
      TMaProc = procedure(MonParam: string);
     
    procedure MaProcedure(MonParam: string);
    begin
      //Instructions
    end;
     
    procedure AppellerProcedureParAdresse(Adresse: Pointer);
    var
      MaProc: TMaProc;
    begin
      MaProc := TMaProc(Adresse);
      MaProc('salut');
    end;
    Bon dev!
    -Slimjoe

  3. #3
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Un conseil quand même : Eviter ces manipulations qui produisent un code tarabiscoté, difficile à maintenir et finalement peu efficace.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  4. #4
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par Bejaia-In
    Un conseil quand même : Eviter ces manipulations qui produisent un code tarabiscoté, difficile à maintenir et finalement peu efficace.

    Parfaitement d'accord!
    -Slimjoe

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci

  6. #6
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par Hitchigo
    Lut 'All
    ca fait un bout de temp que jcherche comment appeller une fonction depuis son adresse memoire , sans rien trouver de bien precis .
    Voila si quelqu'un pourrais m'expliquer un peu ca ;
    mERCI
    que veux tu faire exactement????
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. [PHP 5.2] Allocation de memoire d'une fonction normal VS fonction static
    Par blackdevil86 dans le forum Langage
    Réponses: 1
    Dernier message: 31/01/2012, 10h41
  2. Probleme allocation memoire d'une fonction
    Par Niko_de_bordo dans le forum Débuter
    Réponses: 5
    Dernier message: 22/07/2009, 08h19
  3. Passage d'une adresse en c# vers une fonction C++
    Par sarrjean dans le forum C++/CLI
    Réponses: 11
    Dernier message: 20/03/2007, 08h22
  4. Memoriser l'adresse d'une fonction
    Par Mike91 dans le forum C++
    Réponses: 3
    Dernier message: 23/11/2006, 15h29
  5. garder en memoire un resultat d'une fonction
    Par khadidja dans le forum C++
    Réponses: 6
    Dernier message: 26/07/2004, 14h52

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