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

Lazarus Pascal Discussion :

Problème avec "longword" sous Ubuntu


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Problème avec "longword" sous Ubuntu
    Bonjour à toutes et à tous,

    Dans une procédure d'encryptage de la bibliotèque DCP, j'ai ce qui suit :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
      A:= PDword(@InData)^ + KeyData[0];
      B:= PDword(longword(@InData)+4)^ + KeyData[1];


    Sous Windows 10 64 bits, cela ne pose aucun problème. Sous Ubuntu 64 bits, ça plante. J'ai supprimé ce longword et maintenant, tout se passe apparemment bien.

    Pourquoi ce plantage et quel probable inconvénient de l'avoir supprimé ?

    Cordialement.

    Pierre

  2. #2
    Membre expert
    Salut hum bonne question, à mon avis c'est un reste de conversion Delphi (alignement de l'adressage ? je ne sais pas si c'est le terme exacte) et que cette instruction n'est pas portable

    B:= PDword(longword(@InData)+4)^ + KeyData[1];


    Fait référence à la valeur suivante de (@InData)+4) si on veut transtyper, il serait-plus correct d'écrire B:=Longword(PDword((@InData)+4)^) + KeyData[1];
    mais ici B:= PDword((@InData)+4)^ + KeyData[1]; est correct DWord = LongWord

    Si quelqu'un passe par là, il pourras surement mieux t'expliquer que moi car je n'ai pas les termes techniques justes.

    A+

    Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

###raw>template_hook.ano_emploi###