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

Dotnet Discussion :

Créer une dll enregistrable avec c:\WINDOWS\system32\regsvr32.exe


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut Créer une dll enregistrable avec c:\WINDOWS\system32\regsvr32.exe
    Salut,

    J'ai un site en ASP tout court.
    On développe avec VS 2005.
    En ASP, il est assez pratique de disposer de DLL instanciables avec l'instruction "Server.CreateObject". Ces objets doivent au préalable être enregistrées sur le serveur avec "regsvr32.exe".
    Malheureusement, je ne trouve pas comment en créer avec VS2005.
    Avez-vous une idée?

    Merci.

    Immo
    "Winter is coming" (ma nouvelle page d'accueil)

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu peux marquer l'assembly comme étant ComVisible, c'est un attribut de l'assembly. C'est aussi paramétrable dans les propriétés du projet en question.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Je me demande si Immobilis ne souhaite pas plutôt savoir comment on construit un wrapper (ici et MSDN).

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Hum je serais plutôt du même avis que SaumonAgile....

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Merci de vos réponse.
    Sans trop me poser de question, j'ai créé un projet de bibliothèque de classes avec uniquement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace ClassLibrary1
    {
        public class Class1
        {
            protected bool ReturnTrue()
            {
                return true;
            }
        }
    }
    J'ai coché: "Rendre visible par COM", puis signé l'assembly, puis généré, puis tenté d'enregistrer la DLL. Je reçois un message d'erreur: "le point d'entrée DllRegisterServer est introuvable."

    Avez-vous une idée?
    Je vais essayer la solution de BCmDev. D'après le premier lien, cela correspond à ce que je souhaite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET OBJMSGBOX = Server.CreateObject("CCWComponent.CCWClass")
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Re,

    J'ai mis la DLL dans le GAC. Avec la signature ça passe. Par contre l'instanciation ne marche pas. Qd je "clic droit" dessus je peux la désinstaller. C'est donc que à priori elle devrait marcher, non?

    Sur certains forum ils disent d'utiliser "regasm" plutôt que "regsvr32". Qu'en pensez-vous?

    A pluche.

    Immo
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    En ASP, il est assez pratique de disposer de DLL instanciables avec l'instruction "Server.CreateObject". Ces objets doivent au préalable être enregistrées sur le serveur avec "regsvr32.exe".
    Les objets COM ( Component Object Model ) ce sont des dll programmées en C++ (avec Visual C++ ->projet ATL) , possédant 4 interfaces.
    Avant VB6 permettait cela aussi.
    .NET n'est pas destiné à faire des objets COM ce n'est pas logique de le faire.
    .NET est le successeur de COM architecture plus homogène que les anciennes je ne comprends pas pourquoi vouloir repasser par des objets COM

  8. #8
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    .NET n'est pas destiné à faire des objets COM ce n'est pas logique de le faire.
    Ben oui, mais faut parfois faire avec un existant un peu lourd. Comme je dis au début, je bosse sur un site ASP3 vbscript.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

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

Discussions similaires

  1. créer une dll ressource avec vs 2005 ?
    Par trent94 dans le forum Débuter
    Réponses: 0
    Dernier message: 22/02/2010, 14h02
  2. [Article] Créer une Dll standard avec VB6
    Par medkarim dans le forum Vos contributions VB6
    Réponses: 1
    Dernier message: 29/06/2009, 07h19
  3. probleme avec c:windows/system32/shutdown.exe
    Par islaine dans le forum Sécurité
    Réponses: 1
    Dernier message: 28/01/2009, 09h46
  4. [Lazarus] Comment créer une DLL avec Lazarus
    Par rajawi00 dans le forum Lazarus
    Réponses: 1
    Dernier message: 19/07/2007, 13h49
  5. Créer une dll Windows (de stockage ressource) ?
    Par kidpaddle2 dans le forum Windows
    Réponses: 8
    Dernier message: 17/09/2006, 15h40

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