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 :

Problème avec une fonction d'une DLL (ReadTime)


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut Problème avec une fonction d'une DLL (ReadTime)
    Bonjour,

    voilà, j'ai une DLL dans laquelle se trouve une fonction ReadTime (la DLL est développée par une société de lecteur de badge).

    j'ai su utiliser les autres fonctions de la DLL, mais Delphi bloque sur ReadTime.

    Pourtant, je la déclare comme les autres.

    Voici le bout de code qui la déclare:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      function ReadRecord(DevNo: String; pRecord: PAnsiChar): Integer; stdcall external 'JS868NETCOM.DLL';
      function WriteTime(DevNo: String; pTime: pWideChar): Integer; stdcall external 'JS868NETCOM.DLL';
      function ReadTime(DevNo: String; pTime: Pointer): Integer; stdcall external 'JS868NETCOM.DLL';
    Et voici le bout de code de l'appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.b_set_timeClick(Sender: TObject);
    var
      res3: integer;
      ReadTime: String;
      pReadTime: Pointer;
    begin
      pReadTime := @ReadTime;
      res3 := ReadTime(dev_address, pReadTime);
      steps.Text := 'ReadTime';
      showMessage (ReadTime);
    end;
    Et, voici le message d'erreur lors de la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Erreur] badgeuse_u1.pas(345): Opérateur ou point-virgule manquant

    Auriez-vous une idée ? Est-ce que ReadTime est une fonction déjà existante ?


    Merci

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 878
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 878
    Points : 15 310
    Points
    15 310
    Par défaut
    Citation Envoyé par Nulenprogra Voir le message
    Auriez-vous une idée ? Est-ce que ReadTime est une fonction déjà existante ?
    1- Non
    2- Oui ! F1 sur ReadTime...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Ok, ReadTime existe

    Autre question alors: y a-t-il moyen de changer le nom d'une fonction dans une DLL ?
    Lors de la déclaration ?


    Merci

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 878
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 878
    Points : 15 310
    Points
    15 310
    Par défaut
    Pas à ma connaissance -- mais je ne sais pas tout.
    Ceci étant, si j'étais face à ce problème, et que ça ne soit pas possible, j'attaquerais la dll avec un éditeur hexa et je remplacerais partout "readtime" par "readtome", par exemple.
    Mais encore une fois, je ne suis pas spécialiste de l'appel de fonctions dans des dll's tierces.

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    Citation Envoyé par Nulenprogra Voir le message
    Ok, ReadTime existe

    Autre question alors: y a-t-il moyen de changer le nom d'une fonction dans une DLL ?
    Lors de la déclaration ?
    tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function ReadTime2(DevNo: String; pTime: Pointer): Integer; stdcall; external 'JS868NETCOM.DLL' name 'ReadTime';
    ...
    procedure TForm1.b_set_timeClick(Sender: TObject);
    var
      res3: integer;
      sReadTime: String;
      pReadTime: Pointer;
    begin
      pReadTime := @sReadTime;
      res3 := ReadTime2(dev_address, pReadTime);
      steps.Text := 'ReadTime';
      showMessage (sReadTime);
    end;

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Ok,

    merci !!!

  7. #7
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par Nulenprogra Voir le message
    Ok,

    merci !!!

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

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Réponses: 2
    Dernier message: 03/10/2007, 22h29
  3. problème avec l'utilisation d'une fonction
    Par mcspawn dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2007, 15h39
  4. problème avec l'appel d'une fonction
    Par mademoizel dans le forum ASP
    Réponses: 5
    Dernier message: 26/06/2006, 15h04
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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