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 :

classes dans un package inaccessibles


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 14
    Points : 8
    Points
    8
    Par défaut classes dans un package inaccessibles
    bonjour,

    j'ai crée un package avec codegear c++ builder
    dans lequel j'ai ajouté des fichiers contenant des classes
    par ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class toto
    {
    public: 
    toto();
    ~toto();
    ...
    }
    j'utilise ce package en execution seulement

    lorsque je veux utiliser la classe dans un autre projet
    j'inclus evidement le .lib de mon package au projet
    et le toto.h ds le fichier ou je souhaite utiliser la classe

    celà compile bien mais j'ai une erreur de liaison qui dit :

    [ILINK32 Erreur] Error: 'toto::~toto()' externe non rÚsolu, rÚfÚrencÚ depuis C:\DEV\ESSAI\SOURCES\UNIT1.OBJ
    dans les options le chemin vers la lib est bien defini

    j'ai alors essayé en mettant dans la declaration de la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class __declspec( dllexport ) toto
    {
    public: 
    toto();
    ~toto();
    ...
    }
    mais cette fois ci j'ai un probleme à la liaison du package lorsque j'ai deux classes qui interagissent

    comment fait-on pour avoir acces à des classes dans un package comme on pourrait le faire à partir d'une dll?

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello

    Est-ce que tu as essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class PACKAGE toto
    {
    ...
    C'est un #define sur __declspec(package)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Resolu
    Non, je n'ai pas essaye en fait je viens de trouver la solution au probleme

    1. Il faut qu'il y ai quelque part dans le .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #pragma package(smart_init)
    ce qui permet à la compilation de se faire dans un ordre correct et de bien exporter les classes et fonctions

    2. pour que les fonctions n'appartenant pas a une classe soit egalement exportées il faut aussi mettre le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    __declspec( dllexport )
    pour la fonction
    de plus si cette fonction est egalement utilise à l'interieur du package il ne faut pas utiliser les entetes precompilees (option du projet) sinon on a une erreur de lieur du type
    l'exportation de la classe YY fait reference à la fonction XX dans le fichier YY.obj
    et ca marche tres bien apres toutes ces précautions nécessaires
    Merci tout de meme pour l'aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/06/2015, 12h05
  2. Ajout de classe dans un package
    Par jmsofy dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 26/03/2013, 17h00
  3. [amfPhp] Déclaration de classe dans un package
    Par luta dans le forum Dynamique
    Réponses: 6
    Dernier message: 27/09/2006, 16h37
  4. Réponses: 13
    Dernier message: 18/01/2006, 12h51
  5. [Applet]utiliser une classe d'un package dans une applet
    Par jeromejanson dans le forum Applets
    Réponses: 1
    Dernier message: 30/06/2005, 08h13

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