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.NET Discussion :

erreur com avec mon composant vb.net


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut erreur com avec mon composant vb.net
    Bonjour à tous,
    J'utilise un composant com écrit en VB.net.
    j'ai voulu faire un unregesterdll et c'éatit pas fait correctement, alors j'ai effacer le CLSID corresponadant a ce com, et je l'ai enregistrer une deuxième fois, mais dès lors j'obtient l'erreur suivante
    -2147024769 La récupération de la fabrique de classe COM pour le composant avec le CLSID {CLSID demon COM} a échoué en raison de l'erreur suivante*: 8007007f.
    Est ce quelqu'un peut m'aider résoudre ce problème s'il vous plait .

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut clsid,composant com
    bonjour

    Enregistrer avec regasm /tlb nomComposant.dll ?si c'est le cas ,et en cas de mauvaise manip du registre
    1/Solution N°1
    -mets ton CLSID dans RegEdit et fais une recherche manuelle du CLSID et efface la cle.
    Ensuite fais l'enregistrement avec Regasm /tlb nomComposant.dll
    Car le registre machine est abime.
    2/solution N°2
    Change tous les GUID de ta classe , regenere et inscrit avec Regasm.
    bon code....

  3. #3
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    Bonjour MABROUKI,

    * Pour la première solution je l'ai essayé plusieurs fois et c'était en vain.
    * Pour la deuxième tu peux m'expliquer davanatge comment je peux faire ça?
    Une autre remarque : je suis en windows 7 et tout marchait bien dans ma machien avant que windows effectue plusieurs updates. Est ce que c'est possible que ce soit le pb ?

    Merci beaucoup pour votre aide.

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut changer clsid,classe com
    bonjour
    voici ou il faut intervenir :
    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
    Imports System.Runtime.InteropServices
    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
    Public Class ComClass1
     
    #Region "GUID COM"
        ' Ces GUID fournissent l'identité COM pour cette classe 
        ' et ses interfaces COM. Si vous les modifiez, les clients 
        ' existants ne pourront plus accéder à la classe.
        'LA OU IL FAUT CHANGER LES CLSID AVEC l'OUTIL GENERATEUR DE GUID 
        ' FAIS OUTILS ->CREATE GUID ET COPIE LES 3 NOUVEAUX GUIDS ET 
        ' (ENLEVE LES ACCOLADES APRES AVOIR COLLE)
        Public Const ClassId As String = "18ae69b0-ef5a-447e-91f7-8ccd5c328bef"
        Public Const InterfaceId As String = "782e5dbe-8665-4881-9f58-37c78f77f598"
        Public Const EventsId As String = "d68cf810-27dd-4e3d-9438-27f348800c11"
    #End Region
     
        ' Une classe COM pouvant être créée doit avoir Public Sub New() 
        ' sans paramètre, sinon, la classe ne sera pas 
        ' inscrite dans le Registre COM et ne pourra pas être créée 
        ' via CreateObject.
     
        Public Sub New()
            MyBase.New()
        End Sub
        Private x_nom As String
        Public Property NOM() As String
            Get
                Return x_nom
            End Get
            Set(ByVal value As String)
                x_nom = value
            End Set
        End Property
        Private x_valeur As Double
        Public Property VALEUR() As Double
            Get
                Return x_valeur
            End Get
            Set(ByVal value As Double)
                x_valeur = value
            End Set
        End Property
     
        Public Sub METHOD1()
            VALEUR = VALEUR * 2.0
        End Sub
     
    End Class
    Ensuite dans explorateur sol->proprietes->compiler coche inscrire pour com.
    Regenerer.

    Pour le deployement apres avoir installe sur machine user tu fais :
    panneau configuration->executer et tu entres:
    regasm /tlb cheminInstallation nomComposant.dll
    (l'utilitaire regasm.exe existe dans toute machine qui as installe .net framework 2.0)
    bon code....

  5. #5
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    Bonjour,
    Une autre question s'il vous plait, en ce qui concerne le choix des clés "ClassId" et "InterfaceId" et "EventsId" comment je vais procéder le choix car je peux pas faire ça au hazar je pense car ça peut interférer avec d'uatre ID d'autre applications.
    Merci pour votre aide

  6. #6
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    un autre founding,
    je me suis rendu compte que c'est pas ma tlb .NET qui cause le pb c'était plutot un OCX en C++ (développé par VS 2003) et appelé par ma tlb qui cause le problème
    Est ce que la soution qu vous m' avez donné reste valable ???

Discussions similaires

  1. Erreur BDE avec mon soft
    Par sniperricko dans le forum Bases de données
    Réponses: 16
    Dernier message: 04/12/2009, 19h00
  2. Problème FmodEx CallBack avec mon composant
    Par Fenix01 dans le forum Langage
    Réponses: 2
    Dernier message: 08/05/2009, 09h52
  3. j'ai une erreur 1004 avec mon vba ?
    Par isodoro dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2009, 10h13
  4. Probléme avec mon Projet VB.net
    Par inter_amine dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/11/2008, 10h07
  5. Erreur ESocket avec le composant TNMHTTP
    Par FredericB dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/07/2006, 23h34

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