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 :

Sortir un typedef d'une classe


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Sortir un typedef d'une classe
    je m'adresse à vous pour une question en C++ qui se pose non pas avec Visual C++ ou GCC mais avec C++ Builder :
    Comment sortir le typedef suivant de la classe ??? merci d'avance (j'ai essayé template+typedef+class, il n'a pas aimé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #ifndef _DYNALISTE_H
    #define _DYNALISTE_H
     
    template<class type>
    class dynaliste							/* INDICE BASE 0 */
    {
    private:
    	typedef struct stockpoint {type * pointeur; };          // Structure encapsulant un element de la liste
    	inline void mem_Alloc(void);				// Allocation memoire pour le stockage des elements
    	bool isFreeAll;				
                   // Mis à true lors de l'appel à freeAll
    public:
    	[b]stockpoint * mzone;[/b]					// Pointeur sur la zone memoire stockant la liste
    							// Ce membre est public pour permettre aux classes dérivées

  2. #2
    Membre éprouvé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2002
    Messages : 72
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour

    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
     
    #ifndef _DYNALISTE_H 
    #define _DYNALISTE_H 
     
    typedef struct stockpoint {type * pointeur; }; // Structure encapsulant un element de la liste 
     
     
    template<class type> 
    class dynaliste /* INDICE BASE 0 */ 
    { 
    private: 
    inline void mem_Alloc(void); // Allocation memoire pour le stockage des elements 
    bool isFreeAll; 
    // Mis à true lors de l'appel à freeAll 
    public: 
    stockpoint * mzone; // Pointeur sur la zone memoire stockant la liste 
    // Ce membre est public pour permettre aux classes dérivées
    Comme ça non ?
    Bien sur, ainsi stockpoint , qui était privée , devient global et il faut vérifier que ça ne pose pas de problème ailleurs ....

    cordialement
    O.Constans

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Perdu
    Perdu car le type n'est pas déclaré...

    et en remettant un autre template <class type> devant cela ne marche pas non plus


    A+ Yann

  4. #4
    Membre éprouvé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2002
    Messages : 72
    Points : 1 063
    Points
    1 063
    Par défaut
    oui, bon effectivement la definition de type est mal placée...
    essayez comme ça ...

    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
     
    #ifndef _DYNALISTE_H 
    #define _DYNALISTE_H 
     
    template<class type> 
     
    typedef struct st {type * pointeur; } stockpoint ; // Structure encapsulant un element de la liste 
     
     
    class dynaliste /* INDICE BASE 0 */ 
    { 
      private: 
      inline void mem_Alloc(void); // Allocation memoire pour le stockage des                                      elements 
    bool isFreeAll; 
     
    // Mis à true lors de l'appel à freeAll 
    public: 
    stockpoint * mzone; // Pointeur sur la zone memoire stockant la liste 
     
    // Ce membre est public pour permettre aux classes dérivées

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut re-reperdu
    E2428 Les modèles doivent être des classes ou des fonctions **** Erreur du compilateur
    La déclaration dans une déclaration de modèle doit spécifier un type de classe ou une fonction.

    Encore cet après-midi d'essai et puis j'essai autre chose (un autre moteur 3D mais sous licence LGPL ça ne court pas les rues)

    ou je reviens à Visual C++...

    Dire que ma boite a acheté Borland Pro pour essai.....je m'en tire trés mal de mon galop d'essai.....et chez Borland, je ne tombe que sur des personnes du marketing qui me donne des numéro de téléphone à 36000 chiffres..............Pire que chez Mickey$oft

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Mon avis c'est que le code est mal écris.
    Il ne faut pas jetter la pierre à Borland (la je suis un peu protectioniste mais bon ...).

    Le code ne respecte pas la norme donc evidement ça clash ...

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Essayons autre chose
    Oui, pas de pierre...quand je modifie l'option du compilateur et le met en norme ANSI et non BORLAND, cette erreur disparait mais il en trouve d'autre dans :

    Module Name: Winreg.h
    Abstract: This module contains the function prototypes and constant, type and structure definitions for the Windows 32-Bit Registry API.

    Bon, autre solution peut-être :
    -Chargement statique des .LIB en les ajoutant au projet (préalablement précompilé par VC++, donc pas d'INCLUDE .h)
    -Prototypage des fonctions de la DLL avec le modificateur __declspec (dllimport) comme dit page 7-12 du guide en français.

    Par contre, on peut jeté la pierre pour la doc qui, contrairement à JBuilder, fait un gros volume de 15cm d'épaisseur et non pas plusieurs.
    (j'en ai spiralé 7, ma table des matières est sur le 1er et l'index sur le dernier) dommage.

    A+ Yann
    Et encore merci mais définir une structure générique ne suffira pas à faire fonctionner ce moteur 3D sous Borland...à mon humble avis...de newbie

  8. #8
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Points : 621
    Points
    621
    Par défaut
    et si tu le laissait dans la classe en le déclarant public, ça peut pas aller ?

    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
    #ifndef _DYNALISTE_H 
    #define _DYNALISTE_H 
     
    template<class type> 
    class dynaliste /* INDICE BASE 0 */ 
    { 
    public: 
    typedef struct stockpoint {type * pointeur; }; // Structure encapsulant un private: 
    element de la liste 
    inline void mem_Alloc(void); // Allocation memoire pour le stockage des elements 
    bool isFreeAll; 
    // Mis à true lors de l'appel à freeAll 
    public: 
    stockpoint * mzone; // Pointeur sur la zone memoire stockant la liste 
    // Ce membre est public pour permettre aux classes dérivées
    };
    #endif

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    J'ai voulu telecharger la librairie (18 Mo ... hum) et regarder.
    Le probleme c'est qu'un portage prend du temps et que je n'ai pas de temps pour ça.
    Il me semble que l'auteur est gentil (dixit je sais plus pourquoi j'ai fait ça mais je l'ai fait parce que comme ça ça marche ).
    Il faut je pense reconsidérer l'affaire de maniere plus large pour avoir une autre approche que : je compile, je ferme les yeux ... zut ça marche pas

  10. #10
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Mouais
    Moi aussi je suis gentil
    Stage de quatre mois pour faire un simulateur :
    - une semaine de cahier des charge
    - une semaine état de l'art
    - une semaine de tutoriels Borland
    - la 4ème je commence la maquette à rendre puis pssstt gros pépins
    sur la compile du moteur 3D...là est mon erreur

    Je ne suis que stagiaire et j'essais de m'adapter à l'environnement de l'entreprise qui elle est sous VC++, développe en C, mais voudrais changer et passer à C++ (il ont acheté une licence PRO juste pour voir)
    Mais au vu des "pépins" que j'ai, mon chef de service commence à lorgner vers VISUAL .NET
    Le service marketing de Borland est trés gentil mais les n° de téléphone fournis ne m'amènent à rien et je pense qu'il ne sont pas à une centaine de licences près.

  11. #11
    Membre éprouvé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2002
    Messages : 72
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour,

    comme je l'ai dit, le portage d'appli vc++ , qui permet de faire beaucoup de chose non normalisées (donc non portables) , vers c++builder qui lui est beaucoup plus stricte question respect des règles du c++ n'est pas chose facile !

    Pour porter genesis3d de vc6 à c++builder il m'a fallu envirron 2 mois d'essais et de débogage....

    Si tu es pressé dans le temps et que tu veux travailler avec c++builder, utilise le portage de genesis3d que j'ai fait ...

    http://www.developpez.org/club/g3dbuilder/Index.htm

    genesis 3d est un très bon moteur 3d gratuit, la seule contrainte est de laisser le logo annimé de genesis en 1èr écran et ensuite de publier toute modification apportée au moteur lui même (s'il y en a).

    Cordialement
    Olivier Constans

  12. #12
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Tu vas me sauver la vis...ou tout du moins mon stage....

    QUESTION :
    - dans mon "état de l'art" j'avais noté que Genesis 3D ne supportait pas NT.....
    - qu'il était gratuit pour une utilisation non-commerciale.....

    Or moi il me faut les deux...quoique je ne cherche pas à modifier le moteur. Mon projet est de faire un éditeur puis un simulateur de chaîne mécanisée..les colis se déplaçant....visite guidée de l'aire de stockage...etc... (warehouse quoi...)


    PS mon chef est enthousiaste de voir avec quelle célérité on développe une GUI sous BC++Builder.

    A+ Yann

  13. #13
    Membre éprouvé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2002
    Messages : 72
    Points : 1 063
    Points
    1 063
    Par défaut
    Ca devrait être faisable , mais..

    Genesis 3d ne supporte pas NT car il utilise directx version 6 minimum.

    NT ne supporte Dx v3 !

    Par contre Genesis devrait fonctionner sous W2000 (dx8) .

    Pour utiliser genesis sous nt, il faut utiliser le driver opengl (moins stable que le driver directx)

    De plus il faut avoir une carte graphique 3d sur le micro.

    Dans mon précédent boulot, j'ai utilisé genesis pour faire une visu en 3d d'un terminal à conteneur à partir des information stockée dans ine base de donnée as400.

    le système fonctionnait sous windows 98 et je l'avais développé en c++builder3 pro...


    cordialement
    O.Constans

  14. #14
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Et le prix? C'est gratuit pour une utilisation commerciale si on laisse le logo?
    J'ai vu ta page ...trés sympa

    La première chose que je vais faire ce soir est de compiler tout ça et lire la doc........
    Contrairement à ton terminal ... mon programme doit recevoir des infos presque en temps réels d'un automate concernant les colis en transit et les représenter sur l'écran (enfin du moins interpoler leur vitesse entre deux lecteurs code barre)

    Et dire qu'il y a 3 semaines, on m'aurait dit que j'utiliserais un logiciel 3D.......un stage JBuilder+Web+Apache+Tomcat+LDAP+MYSQL aurait été plus dans mes cordes....enfin....A+ Yann

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

Discussions similaires

  1. Typedef dans une classe mère template
    Par Mat007 dans le forum Langage
    Réponses: 2
    Dernier message: 23/09/2009, 10h50
  2. Réponses: 5
    Dernier message: 29/11/2007, 17h15
  3. Typedefs dans une classe template
    Par olivier1978 dans le forum Langage
    Réponses: 1
    Dernier message: 29/10/2007, 01h12
  4. typedef dans une class template
    Par yan dans le forum Langage
    Réponses: 2
    Dernier message: 01/10/2007, 10h43
  5. [VB6] Sortir d'une classe par gestion d'évènement (Timer) externe ...
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 04/05/2006, 23h13

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