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

Contribuez .NET Discussion :

[Outils][VB.NET] Comment enregistrer Dll ActiveX dans la base de registre ? [FAQ]


Sujet :

Contribuez .NET

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Points : 11
    Points
    11
    Par défaut [Outils][VB.NET] Comment enregistrer Dll ActiveX dans la base de registre ?
    Bonjour,


    Je viens de créer un assembly. J'aurrais besoin d'enregistrer cette dll dans la base de registre pour qu'un autre programme puisse y faire appel.

    Or lorsque je tappe la cmd regsvr32 nomdeladll j'ai le message d'erreur suivant :
    the dllRegisterServer entry point was not found.

    Dans ce cas comment déclarer mes points d'entrées ?

    merci

  2. #2
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    c'est juste un pb de synthaxe :
    regsvr32 "chemin de ta dll"

    exemple :
    regsvr32 "D:\DLLImport\CReport.dll"

    pour mettre à jour une dll, tant que j'y suis ...
    il faut d'abord la désinstaller puis la réinstaller
    regsvr32 /u "D:\DLLImport\CReport.dll"
    regsvr32 "D:\DLLImport\CReport.dll"
    no frag, no life

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    merci je viens de le faire mais mm message d'erreur :
    de plus ma dll ne semble pas être dans la base de registre.

    Moi ce qui me semble bizard c'est qu'a aucun moment on ne définit de point d'entré dans le code comme on le fait en c ou c++ avec cdslec blalbabla ...

    comment fait le framework pour trouver les points d'entrées , les fonction à exporter ou importanter ?

    De plus si le framework n'a pas besoin de point d'entrée dans mon composant parcequ'il gère ca à sa sauce ok ... mais pour l'enregistrement dans la base de registre il faut bien lui indiquez quelques choses parce dans ce cas je ne passe plus vraiment par le framework ! non ?
    S'achant que mon appli qui fait appel aux dll est completement en dehors de l'environnement .NET, je pense qu'il faut absolument que je passe la base de registre !

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    yop

    Je suis un peu surpris.
    Arrêter moi si je me trompe mais il ne semble pas avoir vu que l'on pouvait construire des DLL ActiveX VB.NET avec visual studio .NET ?
    A moins qu'il ne s'agisse d'un add-on ...
    En tout cas moi j'ai visual studio professional 2003 FR(framework 1.1).
    Comme type de projets VB.NET je peux construrire :
    Application Windows
    Bibliothèque de classes
    Bibliothèque de controles windows
    Application Smart device
    Application web ASP.NET
    Service web ASP.NET
    Application web mobile ASP.NET
    Bibliothèque de controles web
    Application console
    Service windows
    Projet vide
    Projet web vide

    Et toi ?

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    ben j'ai le même que toi mm framework et en effet je n'ai pas non de projet activex dll ....

    mais bon on m'a dit que les assembly étaient les correspondant sous vb.NET des activeX Dll .....

    et que pour créer un assembly il fallait lancer "bibliothèque de classes" ....

    bon en fait je suis total newbiz en vb.net ... je suis un dev. java à qui ont demande du vb ... donc je galère total dans vos assembly et truc muche la

    en gros voila je ce que je veuw faire : une dll en vb !!!!!
    or une dll en vb apparament c'est pas possible je suis donc obliger de créer une dll active X .... que dois je faire pour créer cette dll activex ??????

  6. #6
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Si tu souhaites utiliser ta DLL dans un progamme qui n'utilise pas le framework .NET (et apparement c'est le cas puisque c'est une DLL active X que tu souhaites) il faut utiliser Visual Basic 6, ou Visual C++6.

    Et là t'es pas sur le bon forum si c'est le cas.

    Et les assemblys ne sont pas des DLL active X

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    ok mais a quoi corresponde dans ce cas les assembly

    de plus j'ai pas trop le choix mon client me demande de réaliser une dll en vb et je ne dispose que de visual .net ....

    et ca me parrait complètement fou qu'on ne puisse rien faire avec studio dans ce sens ......

    ou alors c'est vraiment une techno de **** (autosensure !)

    en tout cas un grand merci pour ton aide !

  8. #8
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Tiré de la msdn
    Les assemblys sont les blocs de construction des applications .NET Framework ; ils forment l'unité fondamentale de déploiement, de contrôle de version, de réutilisation, de portée d'activation et d'autorisations de sécurité. Un assembly est une collection de types et de ressources qui sont générés pour fonctionner ensemble et former une unité logique de fonctionnalités. Un assembly fournit au Common Language Runtime les informations dont il a besoin pour connaître les implémentations des types. Pour le runtime, un type n'existe pas en dehors du contexte d'un assembly.
    Par ailleurs,
    Un assembly .NET n'est utilisable que par un autre assymbly .NET
    Avec Visual studio.NEt tu ne dispose plus de vb6 pour faire des DLL ActiveX
    Mais tu as toujours la possibilité de le faire avec visual c++ 7 fourni avec visual studio.net

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    il existe une option à cocher dans les propriétés du projet (onglet construction ou génération) pour obtenir une interopérabilité entre le framework et le windows !

    maintenat résolu !

  10. #10
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Génial : Inscrire pour com Interop

    Je viens d'apprendre un truc. Merci à toi !

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    Je me permet de relancer ce post car j'ai pratiquement le meme probléme, on peut créer des assembly de la maniére suivante :

    1) Céer un projet de type com class
    2) signer l'assembly
    3) l'enregistrer
    a) REGASM MADLL.dll
    b) GacUtil -i MADLL.dll
    La dll apparait dans la liste des Composant utilisable par Word 97 par Exemple (Ajouter une Réference)

    Pour la déenregistrer,
    1) GACUTIL -u madll (sans extention)
    2) Regasm -u MADLL.dll

    Mais ceci ne permet de rendre les assembly que référençable : c'est à dire que je n'arrive pas à Céer un Controls COM en .net Compatible avec Word 97. (Je site l'exemple de Word 97 mais le probléme se pose sur des outil industriel qui supportent que les Controls ActiveX avec une interface graphique.)

    Je ne sais pas si ca apporte des informations sur ce Post Mais si qq à une idée, je suis preneur.

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    euuuh,


    as tu des erreurs ? peut tu nous en donner un peu plus ?

    personnelement j'utilise un soft commercial assez ancien qui n'est pas basé sur le framework .NET et ca marche impec à mon avis tu dois avoir une erreur ailleur ... si tu utilise le mm framework que sur celui du as développé ta dll .... devrait pas y avoir de prob. ....

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    Ya juste que les Controles que j'ai développez en .net ne sont pas accessibles dans la liste. tous ceux sans interface (Type ADO) ya pas de problémes, mais ceux avec interfaces (Type bouton) ne sont pas accessibles dans les liste de controles disponibles.

  14. #14
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Le même genre de problèmes
    Bonjour,

    En faisant des recherches sur le forum, je viens de tomber sur ce topic et j'ai le même problème mais je n'arrive pas à le résoudre malgré vos posts.

    Je vous résume mon problème.

    Je viens de récupérer une application pour la maintenir. Elle a été développé en VB6 sous la forme DLL ActiveX.
    Cette DLL est amenée à être utilisée sur des postes chez les clients où elle est enregistrée via regsvr32. Jusque là pas de problème, tout fonctionne.

    Je fais des développements en VB Net depuis quelques temps, et quand j'ai récupéré cette appli DLL, je l'ai ouverte sur mon poste et convertie en VB NET. Le convertisseur m'a donc créé une Bibliothèque de classes. Le problème, c'est que quand je génère ma dll, je ne peux pas l'enregistrer via regsvr32. Ca me génère le message classique "Le point d'entrée RegisterServerDll est introuvable...".
    Et le fait de cocher "Inscrire pour COM Interop" ne résout rien chez moi.

    J'avais un peu le même sentiment qu'Abelman, qu'on ne pouvait pas utiliser une dll générée par VB NET en ActiveX. Mais vous avez l'air de dire que si. Que faudrait-il que je fasse pour que ça marche ?
    En gros, je veux pouvoir créer une DLL enregistrable via REGSVR32.

    Merci d'avance de vos réponses.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    non, tu ne peux pas l'enregistrer avec Regsvr32.exe
    T'as Regasm et Gacutil si je me souviens bien...

    le Regasm est sensé remplacer Regsvr32.exe pour l'enregistrement
    des assembly qui sont compatibles ActiveX

    GacUtil te permet d'enregistrer ton assembly dans le global Chache.

    il te Faut:

    1) Enregistrer l'assemble dans le cache
    2) enregistrer l'assembly en base de registre.

    Pour la déenregistrer il faut faire l'inverse.

    Mais le probléme avec les assembly ayant une interface graphique subsiste.

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour tout le monde ! Je suis confronté au même problème !
    En effet, en utilisant regasm et gacutil, la dll peut être enregistrée.
    Mais comment faut-il procéder si je veux que ma dll soit distribuée à travers une page HTML dans le tag <object> comme un ActiveX ?
    Je ne sais pas si c'est possible ! Mais ça me semblerait bizarre que l'on ne puisse plus concevoir et distribuer d'ActiveX avec Visual Studio .NET ? Comment faut-il s'y prendre ? Si quelqu'un sait, je suis naturellement preneur...

  17. #17
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    non, c'est une technologie qui n'est pas maintenu, la seule chose que tu peux faire c'est des objets com.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/06/2007, 15h27
  2. Comment enregistrer dates NULL dans la base de données ?
    Par Arfigado dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/09/2006, 17h58
  3. Réponses: 11
    Dernier message: 24/08/2006, 11h22
  4. Réponses: 1
    Dernier message: 30/07/2006, 11h49

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