1

j'ai utilisé le contrôle microsoft com 6.0 dans l'application pour envoyer des données au contrôle menévb.net ms COMM faire exception

  MSComm1.EOFEnable = True 
     MSComm1.SThreshold = 100 
     MSComm1.InputLen = 0 
     MSComm1.RThreshold = 1 
     MSComm1.InBufferCount = 0 
     MSComm1.OutBufferCount = 0 
     MSComm1.NullDiscard = False 
     MSComm1.CommPort =1 
     MSComm1.PortOpen = True <-Getting exception to this line 
     ...... 

Je suis geting Exception de HRESULT : 0x800A1F45 .Pourquoi ce port n'est pas ouverture Lorsque je l'exécute à travers vb6 je n'obtiens pas d'erreur ... Tout le monde peut m'aider ...

+0

Pourquoi utiliser cette vieille chose dans une application .NET? Pourquoi ne pas travailler directement avec le port COM en utilisant l'API .NET? –

+0

@JohnSaunders pourriez-vous suggérer une meilleure API .NET pour la communication avec le port COM –

+1

Voir [SerialPort class] (http://msdn.microsoft.com/fr-fr/library/system.io.ports.serialport.aspx). Et n'utilisez pas de contenu VB6 avec .NET. Tout a plus d'une décennie! –

Répondre

1

Erreur 800A1F45 signifie généralement que le port est utilisé par une autre application.

Vous pouvez décoder un HRESULT selon this Wikipedia article. Pour 0x800A1F45, vous trouverez:

  • Le troisième bit est 0, il est donc une erreur Microsoft
  • Les bits de l'installation sont 0xA hex, ou 10 décimales, qui, selon les MSDN list moyens "Control"
  • les bits de code d'erreur sont hexagonaux 0x01F45, ou décimal 8005. Selon le error list for the MSComm control qui signifie « Port déjà ouvert »
+0

Merci beaucoup d'avoir donné une suggestion –