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

VB 6 et antérieur Discussion :

[VB6] [DLL] DLL à instance unique


Sujet :

VB 6 et antérieur

  1. #1
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut [VB6] [DLL] DLL à instance unique
    Bonjour,

    J'ai réalisé une DLL ActiveX appelée par 3 autres programmes.

    Lorsqu'un l'un de ces programmes appelle pour la première fois une fonction de ma DLL, il crée une nouvelle instance de la DLL en mémoire !!!

    N'existe-t-il pas un moyen de charger une et une seule fois la DLL comme les DLL systèmes (system32.dll, gdi32.dll, ...) ?

    Et quelle est la différence entre une DLL activeX et une DLL "classique" ?


    Merci de votre aide.
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 30
    Points : 29
    Points
    29
    Par défaut
    je suis pas sur de mo ncoup, mais quand tu compile ta dll, vérifie dans les propriétés du projet, tu as "Un seul thread" et po des threads cloisonnés

  3. #3
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Oui, je pensais la même chose que toi mais ça ne change rien ....
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  4. #4
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Salut, c'est quoi pour toi une nouvelle instance de DLL ??

    c'est le faite de faire dans chaque algo un

    dim myinstancedll As New dll.classe ??

  5. #5
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Une nouvelle instance de la dll est créée lorsque son class_initialize est appelé.
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  6. #6
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    ok donc si tu fais 3 fois

    dim toto as new dll.classe alors tu auras 3 instances !

    Tu voudrais chopper une instance en cours si il y en a une sinon en créé une c'est ca ?

  7. #7
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Oui, tout à fait, créer et accéder à une et une seule instance en mémoire quelque soit le nombre de programmes qui l'utilisent.

    Par exemple, la dll kernel32.dll est chargée une seule fois au démarrage de windows et elle est accessible par tous les programmes qui lui font appel.

    Tu sais comment programmer en VB une telle DLL ?
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  8. #8
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    Non je sais pas car les DLL VB sont en fait des ActivesX.
    La seule facon que j'ai trouvé pour connecté plusieurs appli ensemble.

    C'est tu fais 3 exe standards (3 appli pere)

    Ensuite j'ai fait une exe ActiveX. avec classe d'entrée ...
    Et tu déclare un tableau en public dans un module dans cet active et là toutes tes applis tappe sur le même tableau.


    Cependant il est vrai que chaque appli à une instance de l'activeX mais l'activeX lui est Multi-use donc une instance chargé dans le gestionnaire de tache.

    C'est tou ce que je sais faire.

    Je serais toi je tenterai avec du C pour la dll.

  9. #9
    Rédacteur

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 608
    Points : 1 561
    Points
    1 561
    Par défaut
    Pour écrire et utiliser une dll en C :
    http://rp.developpez.com/vb/tutoriels/dll/

  10. #10
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Merci à tous !
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

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

Discussions similaires

  1. VB6 Problème dll
    Par erwan.bodere dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/07/2006, 16h52
  2. msimg32.dll (dll pour faire des gradiants) VB6 et innosetup
    Par hpfx dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 25/04/2006, 20h53
  3. [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
  4. [VB6]erreur dll introuvable
    Par ced08150 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/02/2006, 22h24
  5. [VB6] Utiliser dll .Net dans VB6
    Par sokette dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 31/03/2005, 14h34

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