none
Application avec MSComm RRS feed

  • Question

  • Bonjour, 

    Je développe actuellement une application qui nécessite de dialoguer avec le composant ActivX MSComm (dans Microsoft.Comm.Control6.0). Le developpement se fait avec Visual Studio 2013 en VB.net

    Sur le PC ou le développement se fait (WIN 7 64 bits), tout se passe parfaitement, le dialogue fonctionne bien.

    Mais sur le PC qui est utilisé pour faire tourner l'application, c'est un PC qui tourne sous Windows XP 32 Bits SP2, l'application ne fonctionne pas (le formulaire windows s'affiche), mais lorsque j'appuis sur le bouton "Valider", on arrive à la ligne qui créer le composant MSComm avec Dim xx As MSComm = New MSComm()

    Et là, l'erreur suivante s'affiche:

    creating an instance of the com component with CLSID {648A5600-C6E-101B-82B6-000000000014} with IClass Factory failed due to the following error: 80040112

    L'application utilise la version .NET 2.0 (volontairement pour améliorer la compatbilité sur XP), j'ai installé sur la machine XP le framework .NET3.0 ainsi que le package Microsoft.Com.Control6.0 (ainsi que Visual Basic 6.0 Runtime) et normalement l'enregistrement du composant est OK (pas d'erreur à ce sujet à ce que voit ?)

    Sur les forums que j'ai pu trouver (notamment plusieurs sur le msdn), le problème est le même, mais aucune réponse n'a été clairement apportée.

    Quelqu'un aurait une idée ?

    Merci et bonne journée!

    Kévin.

    vendredi 4 mai 2018 12:35

Réponses

  • J'ai fait une réinstallation du service pack, j'ai remis le .OCX correspondant au MSCOM, je l'ai enregistré à nouveau et maintenant ça à l'air de fonctionner. (en faisant aussi le bypass que tu m'a donné dans le lien en ajoutant manuellement la clé de registre)

    Peut être l'installation du SP qui as mal été terminé, ou je ne sais pas d'ou peut venir le problème.

    Je vais faire des essais de dialogue et je reviendrais pour mettre un edit si tout est OK !

    Merci!

    Edit: Le dialogue avec le composant MSComm sous XP est OK!
    lundi 7 mai 2018 08:37

Toutes les réponses

  • Les réponses données suggèrent d'utiliser plutôt la classe SerialPort

    qui est faite pour ça.

    samedi 5 mai 2018 08:52
  • Oui mais il me faut un composant Active X pour ce que j'ai besoin et il me semble que la classe SerialPort ne le permet pas.
    dimanche 6 mai 2018 15:43
  • Oui mais il me faut un composant Active X pour ce que j'ai besoin et il me semble que la classe SerialPort ne le permet pas.

    Quel composant ActiveX ?

    Vu que la classe SerialPort remplace MSComm qui est obsolète, on n'a besoin de rien d'autre.

    dimanche 6 mai 2018 16:22
  • C'est un composant justement comme le MSComm, car pour dialoguer avec mon appareil, je met en place une liaison du type 3964R et j'ai essayé avec le composant Serial Port, mais je n'ai réussi à lire aucune donnée. (avec un code similaire a celui qui fonctionne pour le MSComm et la même configuration)

    Alors il doit quand même changer un peu du composant MSComm.

    dimanche 6 mai 2018 19:57
  • Sinon, l'erreur est CLASS_E_NOTLICENSED

    et certains ont pu la contourner, comme

    MSCOMM32.OCX returns error 80040112

    dimanche 6 mai 2018 20:26
  • J'ai effectué ce qui est mentionné sur le post en question.

    Le code erreur retourné maintenant est: Retrieve the COM Class Factory for component with CLSID {648A5600-2C6E-101B-82B6-000000000014} failed due to the folowing error: 80040154

    Donc effectivement il doit manquer un composant car dans la liste des clés de registre, aucun composant ne porte ce CLSID, mais je ne sais pas quel est ce composant manquant.

    (le .dll MSCOM est bien dans System32 et est enregistré dans la clé de registre)


    • Modifié Kévin98 lundi 7 mai 2018 07:05 Modification
    lundi 7 mai 2018 06:59
  • 0x80040154 c'est REGDB_E_CLASSNOTREG

    Quand tu écris " et normalement l'enregistrement du composant est OK "

    Tu l'as bien enregistré par regsvr32 (en admin) ?


    lundi 7 mai 2018 07:17
  • Oui je l'ai enregistré en admin et j'ai eu le message de succès
    lundi 7 mai 2018 07:49
  • Ce CLSID, 648A5600-2C6E-101B-82B6-000000000014, c'est justement celui de MSComm.

    On peut le voir dans des .reg comme : MSCOMM.REG

    lundi 7 mai 2018 08:20
  • J'ai fait une réinstallation du service pack, j'ai remis le .OCX correspondant au MSCOM, je l'ai enregistré à nouveau et maintenant ça à l'air de fonctionner. (en faisant aussi le bypass que tu m'a donné dans le lien en ajoutant manuellement la clé de registre)

    Peut être l'installation du SP qui as mal été terminé, ou je ne sais pas d'ou peut venir le problème.

    Je vais faire des essais de dialogue et je reviendrais pour mettre un edit si tout est OK !

    Merci!

    Edit: Le dialogue avec le composant MSComm sous XP est OK!
    lundi 7 mai 2018 08:37