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# Discussion :

Récupérer le CLSID d'une DLL VB6 en C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut Récupérer le CLSID d'une DLL VB6 en C#
    Bonjour,

    Je dois développer un programme C# qui récupère différentes informations de DLL pour créer un fichier MANIFEST.
    Les DLL à lire ont étés générées depuis du VB.

    Je n'arrive pas à charger la DLL au lancement de mon programme qui me renvoi l'erreur suivante :

    Impossible de charger le fichier ou l'assembly 'file:///H:\Sources\projet\madll.dll' ou une de ses dépendances. Le module était censé contenir un manifeste de l'assembly.
    Je m'y prends de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String chemin = "H:/Sources/Tiers.dll";
    Assembly asem = null;
    asem = Assembly.LoadFrom(chemin);
    La DLL ne vas pas être utilisée dans le programme, je dois juste lire les informations suivantes : CLSID, TLBID, version, flags, etc.

    J'ai essayé de suivre plusieures tuto qui arrivent à leurs fins avec cette façon de faire (http://www.codeproject.com/Articles/...on-Information par exemple) mais de mon côté j'ai toujours la même erreur (même en téléchargeant le projet du lien précédent).

    Y a-t-il une autre façon de faire ? Ou serait mon erreur ???

    Merci de votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    ou une de ses dépendances
    Es-tu *certain* que cette DLL ne nécessite pas une une autre DLL ou un version de framework particulière?

    As-tu accès au code source?

    As-tu essayé un réflecteur? http://www.reflector.net/

  3. #3
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    La DLL que je cherche à charger ne demande pas d'autre DLL, c'est certain.

    J'ai essayé avec d'autre DLL stockées dans system32 et j'ai la même erreur.

    Pour le framework, ce n'est pas une DLL .NET, elle est faite avec VB6.

    J'ai acces au code.

    PS : Je ne peut rien télécharger depuis mon boulot (merci McAfee).....

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Ouf... J'avais assumé VB.NEt. J'ai pas touché à VB6 depuis 2001. Il me semble que la référence se fait via COM, après avoir enregistré la DLL, non?

    Voici quelques articles prometteurs:

    http://msdn.microsoft.com/en-us/libr...attribute.aspx

    http://msdn.microsoft.com/en-us/library/ms973913.aspx

  5. #5
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    Je n'avais pas précisé, pardon...

    J'arrive à charger la DLL avec DllImportAttribute. Je vais regarder plus em profondeur si j'arrive à récupérer des données pertinentes avec cette objet.

    Je te tien au courant, merci.

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    De toute façon le Assembly.LoadFrom ne peut s'appliquer qu'à une Assembly .NET. Il n'aura aucun effet sur une DLL VB/COM.

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

Discussions similaires

  1. Impossible d’appeler une DLL VB6 en ASP.NET
    Par titan_33 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 24/01/2008, 10h39
  2. Serialisation difficile d'une dll vb6 com
    Par Buddha dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/01/2008, 09h30
  3. Récupérer le handle d'une DLL
    Par bubulemaster dans le forum Débuter
    Réponses: 1
    Dernier message: 03/11/2007, 00h30
  4. Comment en VB6 récupérer un ArrayList d'une DLL écrite en VB.Net
    Par BGC_Laurent dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 04/04/2007, 11h08
  5. [c#] comment récupérer le namespace d'une DLL par réflection?
    Par Jayceblaster dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/07/2006, 13h20

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