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 :

Problème sur le passage d'une string en C# dans une dll Delphi


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Problème sur le passage d'une string en C# dans une dll Delphi
    bonjour,

    J'effectue des essais sur le passage d'une string entre un programme C# et une dll Delphi.
    J'ai écrit une dll en delphi qui reçoit en pramètre un Pchar :
    Function CALCUL_PHENIX(sTrame:PChar): PChar;
    Begin
    MajLog(sTrame);
    result = PChar('Ok');
    end


    Dans C# je déclare ma dll de la maière suivante :
    [DllImport("PNX_CAL.DLL", EntryPoint="CALCUL_PHENIX", SetLastError=true)]
    public static extern string CALCUL_PHENIX(string sTrame);


    Je l'appelle de la manière suivante :
    string param = "log";
    string aa = string.Empty;
    aa = PHENIX_Calcul.CALCUL_PHENIX(param);


    Voici le résultat que j'obtiens:
    Dans c#, je recois bien dans la variable aa la valeur 'Ok', par contre, dans Delphi je reçois des caractères bizarres dans la variable strame. POURQUOI?

    Merci d'avance pour vos réponses....

  2. #2
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    essai d appler la methode ToCharArray() de la la string que tu veux passer en parametre

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    J'ai essayé la méthode ToCharArray() sur ma string param :
    string param = "log";
    char [] tab = param.ToCharArray();
    string aa = PHENIX_Calcul.CALCUL_PHENIX(tab);


    J'obtiens toujours des caractères bizarres dans ma variables sTrame de la dll.

  4. #4
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Visiblement, les types internes sont différents. Qu'est ce qu'un pchar sous Delphi?

  5. #5
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    OK, il semblerait que pchar soit un pointeur sur une ansi string. Normal que ca ne marche pas vu que les objets string sous .net sont encodées en unicode.

    Essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string param = "log";
    byte[] tab = Encoding.Default.GetBytes(param);
    string aa = PHENIX_Calcul.CALCUL_PHENIX(tab);

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. Encoder une String en HTML dans une classe
    Par joKED dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/07/2007, 16h33
  3. Accéder à une variable qui est dans une string
    Par ploxien dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2007, 14h48
  4. Réponses: 4
    Dernier message: 11/05/2006, 14h41
  5. afficher une suite de nombres dans une string
    Par hysah dans le forum C++
    Réponses: 4
    Dernier message: 27/04/2006, 18h51

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