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

Free Pascal Discussion :

Erreur à l'utilisation d'une interface


Sujet :

Free Pascal

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 640
    Points : 408
    Points
    408
    Par défaut Erreur à l'utilisation d'une interface
    Bonjour,

    Dans une unité, j'ai défini l'interface suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ICustomer = interface
        procedure Update;
    end;
    Dans une autre unité, j'ai défini la classe suivante qui implémente cette interface :
    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
    TActivitySector = class(ICustomer)
        FName : string;
        FSquareEconomy : TSquareEconomy;
        FWorkers : integer;
        FWare : TWare;
        FProduction : integer;
        { Liste des ressources utilisées par le secteur }
        FRessources : array of TWare;
        constructor Create(ASquareEconomy: TSquareEconomy);
        procedure ComputeProduction;
        procedure Update;
     end;
     
    procedure TActivitySector.Update;
    begin
      //
    end;
    A la compilation j'obtiens les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    economy.pas(13,21) Error: No matching implementation for interface method "IUnknown.QueryInterface(const TGuid,out <Formal type>):LongInt;StdCall" found
    economy.pas(13,21) Error: No matching implementation for interface method "IUnknown._AddRef:LongInt;StdCall" found
    economy.pas(13,21) Error: No matching implementation for interface method "IUnknown._Release:LongInt;StdCall" found

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 968
    Points : 59 666
    Points
    59 666
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Je n'ai jamais géré les objets COM avec Free Pascal mais il me semble que les trois méthodes du type IUnknown sont déclarées comme abstract et que leur implémentation est réalisée dans la classe tInterfacedObject.

    Comme ceci ça devrait passer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TActivitySector = class(tInterfacedObject)
    ...
    J'espère ne pas avoir dit de c***

Discussions similaires

  1. utilisation d une interface
    Par Cedric33 dans le forum C#
    Réponses: 4
    Dernier message: 10/10/2008, 15h20
  2. Réponses: 2
    Dernier message: 22/07/2008, 08h09
  3. Probleme d'utilisation d'une interface COM
    Par zuzuu dans le forum Windows
    Réponses: 4
    Dernier message: 17/09/2007, 13h25
  4. Réponses: 3
    Dernier message: 22/03/2007, 12h06
  5. Composants à utiliser pour une interface graphique Java
    Par nicolas.pied dans le forum Composants
    Réponses: 4
    Dernier message: 28/11/2005, 21h27

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