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 :

DLL et classes


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut DLL et classes
    Bonjour a tous (ou bonsoir voire peut etre bonne nuit...),
    Suivant les enseignements des differents tutoriels du site, comme ceux de 'LFE' sur les DLL, je me suis d�brouill� pour apprendre a faire des p'tites Dlls et utiliser des fonctions export�es de celles ci. D�ja grand merci a ceux qui bossent pour Developpez.Com , tout seul a l'aveugle j'aurai eut du mal.
    Bon mais je me casse le nez sur une 'DLL de classe', tout en ayant suivi les conseils de l'auteur cit� ci dessus.
    Je voulais tenter de cr�er par ce biais une form de mani�re dynamique ainsi qu'ajouter de la meme mani�re des composants a celle ci.
    La Dll est bien compil�e, le .lib ajout� au projet initial, le .h est inclus et j'acc�de bien aux membres de ma classe lors que je code mais a l'execution j'obtient plutot 'Ressource non trouv�e'...
    Quelqu'un sait il ou je dois chercher pour avoir de nouveaux exemples d'utilisation de Dll de ce type ?
    Voir un bouquin pr�cis qqpart, un cours ?...
    Et pourquoi pas, un petit peu de code d'un programmeur �clair� ?
    Merci

  2. #2
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonsoir,
    Bon je vais essayer de pr�ciser un petit peu, pour peut etre relancer une ame charitable...

    .h du cot� DLL :
    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
     
    #ifdef __DLL__
    #define IMPORT_EXPORT __declspec(dllexport)
    #else
    #define IMPORT_EXPORT __declspec(dllimport)
    #endif
     
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //etc...si besoin
    //---------------------------------------------------------------------------
    IMPORT_EXPORT class TCadre: public TFrame
    {
    __published:
                     //	 
    private:	
                    //
    public:		
                    TListView *NList;
                    //etc ...si besoin
            __fastcall TCadre(TComponent* Owner);
     
    };
    //---------------------------------------------------------------------------
    extern TCadre *Cadre;
    .cpp du cot� DLL :
    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
     
    #include <vcl.h>
    #include <windows.h>
    #include <vcl\Forms.hpp>
    //...
    #pragma hdrstop
     
    #include "CadreCommun.h"
    //---------------------------------------------------------------------------
     
    TCadre *Cadre;
     
    #pragma argsused
    int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
    {
            return 1;
    }
    //---------------------------------------------------------------------------
     
    __fastcall TCadre::TCadre(TComponent* Owner):TFrame(Owner)
    {
    Cadre->Height = 305;
    Cadre->Width = 520;
    Cadre->Top = 100;
    Cadre->Left = 100;
    // .....
    }
    //...etc
    du cot� de l'exe, le .lib de la DLL est ajout�e au projet,
    dans le .cpp j'ai pr�cis� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    #include "CadreCommun.h"
    et
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    #pragma link "CadreCommun"
    puis je tente :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    NCadre = new TCadre(InscriptionConvive);
    Mais j'obtient 'TCadre, ressource non trouv�e ...'.
    J'ai forcement oubli� qqchose, c'est surement �vident mais ...je trouve pas
    Merci d'avance...

  3. #3
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonsoir,
    Bon, je vois que je ne fais pas succ�s avec ma p'tite question !
    Je suis all� voir dans la page 'Options' du projet, sur l'onglet Lieur �volu�, et j'y ait trouv� l'option ' Dll retard�es '.
    J'ai indiqu� la Dll utilis�e puis reconstruit le projet.
    Suis - je sur la piste ?
    Brules - je ?
    Un petit indice ...?

  4. #4
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonsoir,
    L'id�e 'Dll retard�es' dans les options du lieur etait mauvaise.
    Il semble que quoi que je fasse pour l'instant lorsque je lance :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    TCadre *NCadre;
    NCadre = new TCadre(InscriptionConvive);
    NCadre soit toujours = NULL.
    Ce qui ne m'arrange pas vraimment.
    Alors pour attiser la petite soixantaine de personnes qui ont lu mes messages, j'ai du Chateau Margaux Grand Cru Class� en stock....
    Alors ? Toujours pas de petit indice pour moa
    Merci...

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Je ne sais pas s'il y a un moyen pr�cis, c'est � dire un code type.

    A titre perso, avec BCB3 Pro, si je cherche � faire ce que tu fais, � partir de fiches
    d�riv�es de TForm, dans un premier temps la fiche est �dit�e dans un projet qui peut
    �tre celui du projet principal. Lorsque cette phase d'�dtion est termin�e, la fiche est
    retir�e du projet principal et je reconstruis le projet principal ainsi que la dll dont
    le r�le n'est alors que de cr�er une fiche � la demande de l'ex�.

    Cela suppose chez moi d'avoir inclu dans le dll :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    #include "Form2.h" //la dll dispose donc de :  extern PACKAGE TForm2 *Form2;
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    USEFORM("Unit2.cpp", Form2);
    Attention, car il peut y avoir un souci avec Application qui d�tient toutes les fiches.
    Le sujet � �t� abord�e il y a quelques temps et en particulier il s'agissait de
    cr�er dynamiquement une MDIChild � partir d'une dll pour alimenter la MDIForm
    en MDIChild (novembre/d�cembre 2004). L'auteur avait r�solu le probl�me !
    Donc faire une recherche sur ce forum !

    A plus !

  6. #6
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonsoir,

    Henderson, si tu lis ces lignes, encore merci j'y croyais plus trop a force de tourner en rond...c'etait vraimment important .
    Peut etre saurai je te renvoyer l'ascenceur un jour (on sait jamais si je progresse ! ).

  7. #7
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonsoir a tous,
    Henderson, si tu lis ces lignes, encore merci j'y croyais plus trop a force de tourner en rond...c'etait vraimment important .
    Peut etre saurai je te renvoyer l'ascenceur un jour (on sait jamais si je progresse ! ).

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Pour info, s'il y a un souci avec Application (dans le genre bug quand on ferme le programme
    ou peut �tre si on ferme la fen�tre... on ne sait jamais) :

    http://www.developpez.net/forums/viewtopic.php?t=279534

    A plus !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [DLL] et classes de la STL ?
    Par NiamorH dans le forum C++
    R�ponses: 3
    Dernier message: 17/02/2009, 12h22
  2. Creation d'une DLL sans Classe ni m�thode
    Par titan_33 dans le forum G�n�ral Dotnet
    R�ponses: 2
    Dernier message: 22/09/2008, 16h48
  3. [windows] charger une dll (avec classe)
    Par superpok dans le forum Windows
    R�ponses: 11
    Dernier message: 09/09/2007, 11h15
  4. Cr�ation de frame depuis des Dll de classes
    Par ogasse dans le forum Delphi
    R�ponses: 2
    Dernier message: 31/08/2006, 12h51
  5. Dll de classe et variable
    Par SkYsO dans le forum Langage
    R�ponses: 5
    Dernier message: 10/03/2006, 09h25

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