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 :

Affectation illicite de pointeurs en assembleur.


Sujet :

Langage Delphi

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 540
    Points : 123
    Points
    123
    Par défaut Affectation illicite de pointeurs en assembleur.
    Bonjour à tous

    J'ai souvent recours au type Pointer, correspondant au pointeurs de type void en C, je présume. Je suis obligé de passer par là, faute de pouvoir transtyper le type Pointer sur tout autre pointeur, par exemple ^Ptr_String .

    Ca donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    asm  // Affectation illicite de Ptr_Source
          mov EAX, Ptr_Source
          mov ECX, Ptr_Dest
          mov Ptr_Source, ECX
    end;  // asm
     
    move(Ptr_Source, Ptr_Dest, Longueur); // Longueur = integer
    Question : existe-t-il une technique ou une syntaxe permettant une telle affectation illicite MAIS par voie d'un transtypage classique ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    je ne comprend pas tout mais il suffit de transtyper correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
     a: ^TypeA;
     b: ^TypeB;
     VarA: TypeA;
    begin
      a := @VarA;
      b := Pointer(a);
    end;
    d'autre part, l'instruction move en Pascal n'attend pas des pointeurs c'est donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      move(a, b, SizeOf(Pointer)); // copie du pointeur
      move(a^, b^, SizeOf(TypeA)); // copie des données pointées
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 540
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    je ne comprend pas tout mais il suffit de transtyper correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
     a: ^TypeA;
     b: ^TypeB;
     VarA: TypeA;
    begin
      a := @VarA;
      b := Pointer(a);
    end;
    d'autre part, l'instruction move en Pascal n'attend pas des pointeurs c'est donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      move(a, b, SizeOf(Pointer)); // copie du pointeur
      move(a^, b^, SizeOf(TypeA)); // copie des données pointées

    Ben voilà !! C'était syntaxique

    Merci :hello:

Discussions similaires

  1. Pb d'affectation d'un pointeur de fonction
    Par melleb dans le forum C++
    Réponses: 7
    Dernier message: 29/08/2008, 02h24
  2. Affecter un pointeur de fichier a un autre
    Par dr_octopus74 dans le forum Bibliothèque standard
    Réponses: 8
    Dernier message: 16/03/2008, 09h33
  3. Réponses: 7
    Dernier message: 16/04/2007, 13h39
  4. Réponses: 2
    Dernier message: 18/12/2006, 18h03
  5. Erreur sur l'affection d'un pointeur
    Par digital prophecy dans le forum C
    Réponses: 4
    Dernier message: 25/11/2005, 09h07

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