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 :

DLL XE2 compatible avec programme D2006 ?


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 64
    Points : 46
    Points
    46
    Par défaut DLL XE2 compatible avec programme D2006 ?
    Bonjour à tous,

    J'ai d'un côté un programme compilé via Delphi 2006 et de l'autre, une DLL compilée en Delphi XE2.
    Les deux sont-ils "compatibles" ? Sachant que la DLL doit contenir une fonction avec deux paramètres de type string.

    Par avance merci.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    Je te déconseille le type String, car en 2006 c'est AnsiString et XE2 c'est UnicodeString
    Car même si l'on peut penser que la AnsiString de 2006 et XE2 sont compatibles, c'est faux, car XE2 voudra lire la taille en octet d'un caractère (elemSize) et le codePage (en position -10 et -12), mémoire qui n'aura pas été allouée par 2006 !

    Peut-être tenter une RawByteString en XE2 et AnsiString en 2006 en faisant tout de même attention à qui alloue qui !
    la question est-ce à la compilation qu'il gère l'ajout du code de conversion, qui ne le serait pas généré avec une RawByteString ou est-ce qu'il le fait au Runtime et donc même problème de lecture de données non allouées !
    C'est jouer à la roulette russe !

    Essayez une ShortString, il me semble que la structure mémoire n'a pas changé, elle reste ANSI et sur 255 octets\caractères

    Vérifier comment se comporte string[20], est-ce ANSI et 20 octets ou Unicode et 40 octets ?
    Je penche pour 20, ce qui rend encore plus subtil la différence entre string et string[] en XE2 par rapport à ce que cela l'était en 2006 !

    Utilise soit des WideString qui seront parfaitement compatible car basé sur la BSTR de Microsoft

    Soit utilise le PAnsiChar ou PWideChar, à toi de gérer manuellement allocation et libération, ce que tu devais pas trop te préoccuper en utilisant FastShareMem

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    J'ai utilisé PAnsiChar avec FastShareMem.
    Les premiers tests sont concluants.
    Merci ShaiLeTroll.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    Tu devrais même supprimer FastShareMem !
    Si tu utilises correctement PAnsiChar, ce n'est pas nécessaire !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DLL XE2 utilisée par un programme Delphi 5
    Par Papy214 dans le forum Langage
    Réponses: 15
    Dernier message: 11/07/2013, 11h28
  2. Structure de dll compatible avec plusieurs langages
    Par declencher dans le forum Débuter
    Réponses: 15
    Dernier message: 17/02/2011, 12h34
  3. Réponses: 8
    Dernier message: 21/04/2009, 11h06
  4. Réponses: 7
    Dernier message: 11/09/2006, 16h44

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