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++Builder Discussion :

erreur dans un fichier include


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Points : 523
    Points
    523
    Par défaut erreur dans un fichier include
    Bonjour,
    j'ai donc réussit à compiler les composant asphyre dans C++Builder en modifiant beaucoup de fichiers pour les rendre compatible mais j'ai maintenant une erreur que je ne comprend pas. J'ai obtenu tous les composants et donc pu compiler les fichiers pas. Ce qui m'a permis d'obtenir des fichiers include en hpp. Seulement, des parties des fichiers include ne correspondent pas aux fichiers pas.

    Par exemple le code suivant du fichier pas : (le fichier n'est pas entier, je n'ai mis que ce qui est pertinent)
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    interface
     
    //---------------------------------------------------------------------------
    uses
     Types, Classes, SysUtils, AsphyreDef;
     
    //---------------------------------------------------------------------------
    type
     TAsphyreSubscriber = class;
     
    //---------------------------------------------------------------------------
     TAsphyrePublisherClass = class of TAsphyrePublisher;
     
    //---------------------------------------------------------------------------
     TAsphyrePublisher = class(TComponent)
     private
      Data: array of TAsphyreSubscriber;
     protected
      procedure Subscribe(Obj: TAsphyreSubscriber);
      procedure Unsubscribe(Obj: TAsphyreSubscriber);
      function FindSubscriber(Obj: TAsphyreSubscriber): Integer;
     
      function Notify(Msg: Cardinal): Boolean;
     public
     
      constructor Create(AOwner: TComponent); override;
      destructor Destroy(); override;
     end;
     
    //---------------------------------------------------------------------------
     TAsphyreSubscriber = class(TComponent)
     private
      FPublisher: TAsphyrePublisher;
     
      procedure SetPublisher(const Value: TAsphyrePublisher);
      procedure SearchForPublisher();
     protected
      function HandleNotice(Msg: Cardinal): Boolean; virtual;
      function PublisherClass(): TAsphyrePublisherClass; virtual;
     
      procedure Notification(AComponent: TComponent;
       Operation: TOperation); override;
     public
     
      constructor Create(AOwner: TComponent); override;
      destructor Destroy(); override;
     published
      property Publisher: TAsphyrePublisher read FPublisher write SetPublisher;
     end;
     
    //---------------------------------------------------------------------------
    donne le ficheir hpp suivant :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    // Borland C++ Builder
    // Copyright (c) 1995, 2002 by Borland Software Corporation
    // All rights reserved
     
    // (DO NOT EDIT: machine generated header) 'AsphyreSubsc.pas' rev: 6.00
     
    #ifndef AsphyreSubscHPP
    #define AsphyreSubscHPP
     
    #pragma delphiheader begin
    #pragma option push -w-
    #pragma option push -Vx
    #include <AsphyreDef.hpp>	// Pascal unit
    #include <SysUtils.hpp>	// Pascal unit
    #include <Classes.hpp>	// Pascal unit
    #include <Types.hpp>	// Pascal unit
    #include <SysInit.hpp>	// Pascal unit
    #include <System.hpp>	// Pascal unit
     
    //-- user supplied -----------------------------------------------------------
     
    namespace Asphyresubsc
    {
    //-- type declarations -------------------------------------------------------
    typedef TMetaClass*TAsphyrePublisherClass;
     
    typedef DynamicArray<TAsphyreSubscriber* >  AsphyreSubsc__2; //l'erreur est ici
     
    class DELPHICLASS TAsphyrePublisher;
    class DELPHICLASS TAsphyreSubscriber;
    class PASCALIMPLEMENTATION TAsphyrePublisher : public Classes::TComponent 
    {
    	typedef Classes::TComponent inherited;
     
    private:
    	DynamicArray<TAsphyreSubscriber* >  Data;
     
    protected:
    	void __fastcall Subscribe(TAsphyreSubscriber* Obj);
    	void __fastcall Unsubscribe(TAsphyreSubscriber* Obj);
    	int __fastcall FindSubscriber(TAsphyreSubscriber* Obj);
    	bool __fastcall Notify(unsigned Msg);
     
    public:
    	__fastcall virtual TAsphyrePublisher(Classes::TComponent* AOwner);
    	__fastcall virtual ~TAsphyrePublisher(void);
    };
     
     
    class PASCALIMPLEMENTATION TAsphyreSubscriber : public Classes::TComponent 
    {
    	typedef Classes::TComponent inherited;
     
    private:
    	TAsphyrePublisher* FPublisher;
    	void __fastcall SetPublisher(const TAsphyrePublisher* Value);
    	void __fastcall SearchForPublisher(void);
     
    protected:
    	virtual bool __fastcall HandleNotice(unsigned Msg);
    	virtual TMetaClass* __fastcall PublisherClass(void);
    	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
     
    public:
    	__fastcall virtual TAsphyreSubscriber(Classes::TComponent* AOwner);
    	__fastcall virtual ~TAsphyreSubscriber(void);
     
    __published:
    	__property TAsphyrePublisher* Publisher = {read=FPublisher, write=SetPublisher};
    };
     
     
    //-- var, const, procedure ---------------------------------------------------
     
    }	/* namespace Asphyresubsc */
    using namespace Asphyresubsc;
    #pragma option pop	// -w-
    #pragma option pop	// -Vx
     
    #pragma delphiheader end.
    //-- end unit ----------------------------------------------------------------
    #endif	// AsphyreSubsc
    j'ai indiqué où est l'erreur. Il déclare quelques chose qui n'est pas dans le fichier pas. J'ai fait une recherche dans l'ensemble des fichiers et "AsphyreSubsc__2" n'existe que dans ce fichier hpp. D'où vient-il et commant faire pour s'en débarasser? Parce que même si je déplace la ligne un peu plus bas (pour qu'il puisse l'utiliser) ou si je la supprime, le fichier est regénérer à chaque fois que je recompile les composants pour rajouter des modules ou des fonctions.

    Et j'ai un autre problème dans un autre fichier.
    dans un hpp j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    typedef _DIACTIONA *PDIActionA;
     
    typedef _DIACTIONW *PDIActionW;
     
    typedef _DIACTIONA *PDIAction;
     
    typedef _DIACTIONA  TDIActionA;
     
    typedef _DIACTIONW  TDIActionW;
     
    typedef _DIACTIONA  TDIAction;
    sachant qu'il ne déclare jamais _DIACTIONA ou _DIACTIONW
    et voici la partie du pas qui a autogénérer de hpp :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION > 0x0700) *)
     
    type
      PDIActionA = ^TDIActionA;
      PDIActionW = ^TDIActionW;
      PDIAction = PDIActionA;
      _DIACTIONA = packed record
        uAppData: Pointer;
        dwSemantic: DWORD;
        dwFlags: DWORD;
        case Byte of
          0: (
            lptszActionName: PAnsiChar;
            guidInstance: TGUID;
            dwObjID: DWORD;
            dwHow: DWORD;
           );
          1: (
            uResIdString: LongWord;
          );
      end;
      {$EXTERNALSYM _DIACTIONA}
      _DIACTIONW = packed record
        uAppData: Pointer;
        dwSemantic: DWORD;
        dwFlags: DWORD;
        case Byte of
          0: (
            lptszActionName: PWideChar;
            guidInstance: TGUID;
            dwObjID: DWORD;
            dwHow: DWORD;
           );
          1: (
            uResIdString: LongWord;
          );
      end;
      {$EXTERNALSYM _DIACTIONW}
      _DIACTION = _DIACTIONA;
      {$EXTERNALSYM _DIACTION}
      DIACTIONA = _DIACTIONA;
      {$EXTERNALSYM DIACTIONA}
      DIACTIONW = _DIACTIONW;
      {$EXTERNALSYM DIACTIONW}
      DIACTION = DIACTIONA;
      {$EXTERNALSYM DIACTION}
      TDIActionA = _DIACTIONA;
      TDIActionW = _DIACTIONW;
      TDIAction = TDIActionA;
    Une idée?
    Merci d'avance

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Points : 537
    Points
    537
    Par défaut
    Je ne suis pas un expert du domaine mais il existe des directives #Pragma spécifique pour la génération des .H dans le code Delphy.

    est tu sur que ce code à déja été manipulé en C++ ou alors c'est la première fois ??

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Points : 523
    Points
    523
    Par défaut
    Non, c'est la 1ère fois.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Points : 537
    Points
    537
    Par défaut
    Alors essayes de mettre ta question (avec exemple) coté Delphy, il y en a qui connaissent bien les deux langages ainsi que les #pragma préprocesseur

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

Discussions similaires

  1. Erreur dans le fichier de lancement
    Par sboober dans le forum JWS
    Réponses: 2
    Dernier message: 14/04/2009, 17h41
  2. erreur dans un fichier include
    Par gandf dans le forum Delphi
    Réponses: 6
    Dernier message: 04/04/2007, 15h28
  3. Réponses: 7
    Dernier message: 23/04/2006, 23h07
  4. Erreur dans un fichier Yacc
    Par gRaNdLeMuRieN dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 20/08/2005, 20h50
  5. [Servlet] Erreur dans le fichier web.xml
    Par Crazyblinkgirl dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/07/2004, 15h20

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