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 :

création DLL Borland 2009 [Débutant]


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut création DLL Borland 2009
    bonsoir ,

    Je souhaiterai apprendre à creer des DLL avec Borland C++ .
    Je recherche donc des conseils par rapport aux appel , les access , les variables etc...

    G essayé de suivre le tuto en creant un test avec le wizard .

    Lors de la première compilation g déjà une erreur !!

    [BCC32 Erreur] rpcnsip.h(30): E2303 Nom de type attendu

    ca coince sur cette ligne ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef struct
    {
       RPC_NS_HANDLE        LookupContext;
    Ca promet pour la suite !!!

    merci pour vôtre aide

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Pense qu'il faut mettre dans les options de projet, le chemin des include
    rpcnsip.h est une unité standard, tu devrais avoir par défaut
    dans "$(BDS)\include", je suppose que tu l'as inclu dans une de tes unités, elle n'est pas embarqué par Défaut !

    tu as généré une DLL C++ avec support de la VCL ?
    Pour les autres combinaisons d'options, je ne l'ai jamais fait et puis ne pas utiliser la VCL sous C++Builder c'est comme ne pas utiliser les MFC sous Visual
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Aurais tu des conseils pour les dll en général ?

    les access aux variables depuis exterieur structures appel fonction , class etc ?

    Histoire de prendre les bonnes habitudes ....

    merci

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    A part, faire attention à toujours utilisé __stdcall, utilisé les types simples ou les types windows, éviter AnsiString dans les fonctions exportées, je vois pas grand chose !

    J'ai souvent utilisé des struct, en général, je fais une ou plusieurs classes Wrappers qui encapsule la DLL (peu importe si développez en interne ou par un tiers), ce permet de pas se poser des questions sur l'utilisation, la mémoire, ...

    Selon les cas, je trouve que l'objet COM\ActiveX, c'est vraiment pratique, la TLB en MIDL (Microsoft Interface Definition Language) et le wrapper généré pour la CoClass, cela te donne une bonne architecture, facilite l'interop, on peut le pousser avec du DCOM (là c'est un exe)

    En ce moment, je me suis lancé dans le développement de DLL aussi, en fait, je n'ai que deux méthodes exportées, GetInterface et GetLastError, la 1ere renvoi une interface (pure abstract c++) qui offre les fonctionnalités génériques et fourni l'accès à tout une collection d'objet (une sorte de Factory), certains d'entre propose une interface (Delphi Interface) qui avec Supports permet de savoir si l'on peut l'utiliser ou pas,
    c'est très proche du COMFactory sauf que là mes DLL, je ne les enregistre pas et que surtout je vais en avoir plusieurs qui implémentent les mêmes interfaces.

    Si tu es curieux :
    [C++\Delphi] Interface, Héritage et Supports !
    Interface dont l'implémentation est réparti dans plusieurs classes
    Pattern Strategy et Constructeurs Virtuels VCL
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    je potasse tous tes liens

    merci beaucoup pour tes conseils !

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    une petite question de débutant ?

    Quand on fait un Dll , pour une utilisation dynamique , y a t il une importance pour le langage d'appel .

    En gros je compile en Builder c++ et c pour une utlisation en Delphi .

    Dans le cas inverse , quelle est la solution la plus simple ???

    merci

  7. #7
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    C++Builder \ Delphi, cela reste très compatible, cela peut même partager des BPL et donc des classes, même si je te conseille de rester dans un style d'API à la Microsoft !

    l'ActiveX permet d'assurer une compatiblité COM qui sera bien géré par VSC++, C# Interop COM, VB et VB.Net, VBScript (comme dans Excel)...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    merci

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

Discussions similaires

  1. [VB6] création dll win32 et appel par un autre programme
    Par Tankian85 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/03/2006, 08h21
  2. Deux méthodes de création Dll
    Par Hokagge dans le forum MFC
    Réponses: 6
    Dernier message: 12/01/2006, 11h04
  3. Création DLL pour utilisation sur VBA
    Par Fbartolo dans le forum C++Builder
    Réponses: 1
    Dernier message: 21/11/2005, 20h44
  4. Création dll
    Par Vodkha dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2005, 09h15
  5. DLL Borland chargée par Windows: crash
    Par bocher dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/01/2004, 12h09

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