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

C++ Discussion :

DLL Delphi OutPut ShortString in C++


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    Ao�t 2006
    Messages
    185
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 185
    Par d�faut DLL Delphi OutPut ShortString in C++
    Bonjour a tous,
    j'ai une DLL cr�er en Delphi qui me renvoi un ShortString. Exemple en c++
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    ShortString MaVariableShortString;
    MaFonction(MaVariableShortString);
    il devrait me renvoyer une chaine de caractere dans MaVariableShortString mais il me fai une violation d'acc�s. Alors j'ai mit
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    PChar MaVariablePChar;
    MaVariablePChar = StrAlloc(255);
    MaFonction(MaVariablePChar);
    cela fonctionne mais il me renvoie une partie de ce qu'il devrait m'envoyer et entour�s de caract�res inconnus.... Quelqu'un voit l'erreur? Quelqu'un connait un autre �quivalent a ShortString sous C++?? Merci d'avance

  2. #2
    scr
    scr est d�connect�
    Membre �prouv�
    Inscrit en
    Juin 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 127
    Par d�faut
    Je ne connais pas DELPHI mais d'apr�s ce que j'ai pu lire, le premier caract�re du shortstring contient le nombre de caract�re de ta chaine.
    Il te suffit de faire un petit traitement:
    - Suppression du premier caract�re
    - Ajout d'un caract�re '\0' a la fin de ta chaine
    pour extraire la partie qui t'int�resse...

  3. #3
    Membre �clair�
    Homme Profil pro
    conseil et d�veloppeur en informatique industrielle
    Inscrit en
    Janvier 2006
    Messages
    220
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : conseil et d�veloppeur en informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2006
    Messages : 220
    Par d�faut
    je confirme :
    en delphi, le premier caractere(ou plutot octet) d'une chaine est sa longueur.
    et le terminateur n'est pas 0 comme en C
    faut creuser le probleme dans ce sens..

  4. #4
    Membre confirm�
    Inscrit en
    Ao�t 2006
    Messages
    185
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 185
    Par d�faut
    Oui la premi�re ne correspond pas, ok. Mais pour initialiser la variable PChar je dois faire StrAlloc(255)??? Comment je l'initialise avec la bonne taille et la met a null...

  5. #5
    scr
    scr est d�connect�
    Membre �prouv�
    Inscrit en
    Juin 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 127
    Par d�faut
    j'allouerai plutot 256 octet : le premier octet est le nombre de caract�re, sachant qu'il peut y en avoir jusqu'a 255

    ensuite essaie un truc du style:

    BYTE *b;
    char *s;

    b=(BYTE*) MaVariablePChar;
    s=MaVariablePChar+1;
    s[*b]='\0';

    Et tu devrais retrouver ta chaine dans s

  6. #6
    Membre confirm�
    Inscrit en
    Ao�t 2006
    Messages
    185
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 185
    Par d�faut
    Merci pour vos r�ponse. Cela ne fonctionne toujours pas. Il me renvoie qu'une partie mais si je cr�er une deuxieme variable PChar il me renvoie toute la chaine... Il y a un probl�me d'allocation m�moire.... Quelqu'un a un exemple d'initialisation?

  7. #7
    scr
    scr est d�connect�
    Membre �prouv�
    Inscrit en
    Juin 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 127
    Par d�faut
    Citation Envoy� par BATiViR Voir le message
    Cela ne fonctionne toujours pas. Il me renvoie qu'une partie mais si je cr�er une deuxieme variable PChar il me renvoie toute la chaine
    Tu peux pr�ciser...

    On peut voir le code et les r�sultats que tu obtiens...

  8. #8
    Membre confirm�
    Inscrit en
    Ao�t 2006
    Messages
    185
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 185
    Par d�faut
    Apr�s de nombreux test j'ai trouver mon erreur. Quand j'initialise ma variable char.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    char MaVariableChar[256] = ""
    si j'initialise pas avec = "" il va dans d'autres zone m�moires et m�lange tout... Merci pour votre aide.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. DLL Delphi utilis�e sous VB.NET
    Par slimjoe dans le forum Langage
    R�ponses: 2
    Dernier message: 09/01/2006, 00h12
  2. [VB.NET] Comment g�rer une DLL Delphi ?
    Par slimjoe dans le forum VB.NET
    R�ponses: 2
    Dernier message: 09/01/2006, 00h10
  3. Utiliser Dll Delphi
    Par smyley dans le forum MFC
    R�ponses: 9
    Dernier message: 12/03/2005, 18h21
  4. R�ponses: 2
    Dernier message: 28/10/2003, 10h55
  5. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    R�ponses: 2
    Dernier message: 26/07/2002, 10h07

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