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

Delphi Discussion :

[D6] Violation d'accés avec une fonction d'un package


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut [D6] Violation d'accés avec une fonction d'un package
    Bonjour,
    J'ai une erreur de violation d'accés dans mon code lors de l'utilisation d'une fonction exportée d'un package.

    Je vais faire court :
    J'ai un package où je defini une fonction de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function Uncrypt(Value: String): String; stdcall;
     
    Exports Uncrypt;
     
    implementation 
    function Uncrypt (Value: String): String; 
    begin
        REsult := 'MPL';
    end;
    Dans mon unité principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure test;
    Type
        TSec = function (Value : String) : String; stdcall;
    
    var 
       Sec : Tsec;
       S := String;
    begin
     // Récupération de la focntion du paquet en utilisant GetProcAddress
    
     S := Sec('te'); //Erreur ici de violation d'accés si dernière ligne de la procedure
    end;
    Petites indications :
    - Cela ne se produit pas quand je retourne un int à la place d'un string
    - Cela ne se produit pas quand je retourne ''

    Je penchais sur le type string qui ne peux pas être utilisé dans une fonction export mais le même problème se produit si je le place en variable Var d'une procedure.

    Si quelqu'un à une idée, je suis tout ouïe.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    J'ai trouvé, c'est le même problème qu'avec les DLL, il ne faut pas utilisé les String (ou déclaré le classe sharemem) mais des WideString ou PChar.
    Problème résolu.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2007, 17h18
  2. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33
  3. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15
  4. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 13h22

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