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

Lazarus Pascal Discussion :

Je cherche à utiliser lNet_0.6.5 [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 094
    Points : 1 058
    Points
    1 058
    Par défaut Je cherche à utiliser lNet_0.6.5
    Bonjour à toutes et à tous,

    je cherche à utiliser les composants de lNet-0.6.5 en alternative à Indy-10.2.0.3.

    Après une installation pas triste (il a fallu rajouter tout un tas de chemins), j'essaie l'exemple "smtp" et, après avoir rajouté encore des chemins, j'ai une erreur de compilation dans le fichier "lcontainersh.inc" :
    lsmtp.pp(50,4) Warning: Macro support has been turned off
    lcontainersh.inc(17,17) Error: Identifier not found "__front_type__"
    lcontainersh.inc(17,31) Error: Error in type definition
    lcontainersh.inc(18,44) Error: Identifier not found "__front_type__"
    lcontainersh.inc(18,58) Error: Error in type definition
    lcontainersh.inc(23,43) Error: Identifier not found "__front_type__"
    lcontainersh.inc(24,21) Error: Identifier not found "__front_type__"
    lcontainersh.inc(25,22) Error: Identifier not found "__front_type__"
    lcontainersh.inc(26,34) Error: Identifier not found "__front_type__"
    Pourtant, cet identificateur existe bien dans le fichier lFTP.pp (que j'ai dû rajouter dans les chemins).

    Si l'un d'entre vous utilise ces composants et sait comment faire ...

    Cordialement.

    Pierre.

  2. #2
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 094
    Points : 1 058
    Points
    1 058
    Par défaut
    Entrons dans le détail qui, à mon avis, ne demande pas de connaître les composants lNet.

    Le problème, me semble-t-il, est un problème d'inclusion de fichier.

    Voici le fichier demandeur (lsmtp.pas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    unit lsmtp;
     
    {$mode objfpc}{$H+}
    {$inline on}
     
    interface
     
    uses
      Classes, SysUtils, Contnrs, Base64,
      lNet, lEvents, lCommon, lMimeWrapper, lMimeStreams;
     
    type
      TLSMTP = class;
      TLSMTPClient = class;
     
      TLSMTPStatus = (ssNone, ssCon, ssHelo, ssEhlo, ssAuthLogin, ssAuthPlain,
                      ssStartTLS, ssMail, ssRcpt, ssData, ssRset, ssQuit, ssLast);
     
      TLSMTPStatusSet = set of TLSMTPStatus;
     
      TLSMTPStatusRec = record
        Status: TLSMTPStatus;
        Args: array[1..2] of string;
      end;
     
      { TLSMTPStatusFront }
      {$DEFINE __front_type__  :=  TLSMTPStatusRec}
      {$i lcontainersh.inc}
      TLSMTPStatusFront = TLFront;
     
      TLSMTPClientStatusEvent = procedure (aSocket: TLSocket;
                                           const aStatus: TLSMTPStatus) of object;
     
    ...
    À la ligne 27, on définit ce qu'est le type "__front_type__"
    À la ligne 28, on inclut le fichier " lcontainersh.inc" qui utilise ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    { This include is a little a-la-templates hack
     
      here are all the "default" type defines which you need to
      redefine yourself after including this file. You only redefine those
      which are used ofcourse }
     
    {$ifndef __front_type__}
      {$ERROR Undefined type for quasi-template!}
    {$endif}
     
    const
      MAX_FRONT_ITEMS = 10;
     
    type
      TLFront = class // it's a queue ladies and gents
       protected
        FEmptyItem: __front_type__;
        FItems: array[0..MAX_FRONT_ITEMS-1] of __front_type__;
        FTop, FBottom: Integer;
        FCount: Integer;
        function GetEmpty: Boolean;
       public
        constructor Create(const DefaultItem: __front_type__);
        function First: __front_type__;
        function Remove: __front_type__;
        function Insert(const Value: __front_type__): Boolean;
        procedure Clear;
        property Count: Integer read FCount;
        property Empty: Boolean read GetEmpty;
      end;
    D'après moi, ça devrait fonctionner. Je ne vois pas ce qui cloche.

    Cordialement.

    Pierre.

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 879
    Points : 11 373
    Points
    11 373
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Je ne connais pas la syntaxe suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$DEFINE __front_type__  :=  TLSMTPStatusRec}
    et l'aide d'Embarcadero nous dit
    Use the {$DEFINE} directive to set a specified symbol to True
    Je ne vois pas comment ça tient debout !

  4. #4
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 094
    Points : 1 058
    Points
    1 058
    Par défaut
    j'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      {$DEFINE __front_type__ := TLSMTPStatusRec}
      {$i lcontainersh.inc}
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      __front_type__ = TLSMTPStatusRec;
      {$DEFINE __front_type__}
      {$i lcontainersh.inc}
    Ça a compilé ... en ayant modifié un autre Include qui ne voulait pas se charger.

    Mais quand j'ai lancé l'application, j'ai eu une erreur me disant que la bibliothèque OpenSSL n'était pas chargé. Il faut installer des trucs de OpenSSL (sauf sous Linux apparemment où c'est fait automatiquement).

    Je crois que je vais laisser tomber ces composants.

    Pierre.

  5. #5
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 094
    Points : 1 058
    Points
    1 058
    Par défaut
    Je n'ai pas non plus réussi à faire l'installation sous Ubuntu. Il fallait ajouter des chemins, que je donnais, et qui n’amélioraient rien ...

    Bon, j'ai viré ces composants.

    Cordialement.

    Pierre.

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 879
    Points : 11 373
    Points
    11 373
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    CodeTyphon embarque une version plus ancienne de ces composants, avec pê l'avantage de supprimer les problèmes de configuration ? A tester éventuellement, voire par curiosité à regarder pour comprendre le point soulevé.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/06/2006, 15h49
  2. Je cherche une personne qui utilise TsiLang !!Erreur!!
    Par yosthegost dans le forum Delphi
    Réponses: 2
    Dernier message: 13/06/2006, 15h32
  3. [Delphi] Cherche moteur 3D ultra simple à utiliser
    Par Matt2094 dans le forum Moteurs 3D
    Réponses: 3
    Dernier message: 22/05/2006, 09h17
  4. Cherche firewall simple d'utilisation
    Par Marco85 dans le forum Sécurité
    Réponses: 3
    Dernier message: 02/02/2006, 22h23
  5. [SQL] Cherche tutoriel & exercice utilisable en offline
    Par Seth77 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/10/2005, 18h34

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