vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Das Mysterium des Ungültigen Handles 
Autor: Urot
Datum: 15.04.05 18:10

hiho

ich möchte mit dotnet boardmitteln asynchrone und synchrone operationen mit verschiedenen devices durchführen da dachte ich mir ich fang mal mit com und lpt an.
so nun hatte ich gestern abend fast alle apis super am laufen. und auch en tollen weg gefunden um einen filestream zu bekommen der mich bytes schreiben und lesen lies vom comm port. ich schlief ruhig ein und als ich heute das projekt wieder startete bekam ich eine exception ich hatte einfach nur die form umgeschrieben an der klasse selbst nichts gemacht ;( und nun sagt mir die getCommFileStream function immer das ich ein ungültiges handle angebe das ist auch bei anderen leuten jetz so und auch andere funktionen die auf einem comm handle beruhen funktionieren nicht mehr.
ich kriege einfach kein handle mehr mit dem gleichen code, die geräte die ich anschliesse funktionieren dennoch astrein.

naja nun viel geredet hier mal ein bisschen code der nur einen filestream vom handle erstellt.

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
     System.EventArgs) Handles MyBase.Load
        Try
            'Dim Astream As IO.FileStream = getAsyncCommFileStream(1)
            Dim stream As IO.FileStream = getCommFileStream(1)
            ' MsgBox(Astream.Handle.ToString)
            MsgBox(stream.Handle.ToString)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
 
    <DllImport("Kernel32.dll")> Private Shared Function CreateFile _
    (ByVal filename As String, <MarshalAs(UnmanagedType.U4)> _
    ByVal fileaccess As IO.FileAccess, <MarshalAs(UnmanagedType.U4)> _
    ByVal fileshare As IO.FileShare, ByVal securityattributes As Integer, _
    <MarshalAs(UnmanagedType.U4)> ByVal creationdisposition As IO.FileMode, _
    ByVal flags As Integer, ByVal template As IntPtr) As IntPtr
    End Function
 
    Private Const FILE_FLAG_OVERLAPPED As Integer = &H40000000
    Private Const FILE_FLAG_NO_BUFFERING As Integer = &H20000000
 
    Public Function getCommFileStream(ByVal PortIndex As Integer, Optional _
      ByVal access As IO.FileAccess = IO.FileAccess.ReadWrite, Optional ByVal _
      share As IO.FileShare = IO.FileShare.ReadWrite) As IO.FileStream
        Return New IO.FileStream(CreateFile("\\.\COM" & PortIndex.ToString, _
        access, share, 0, IO.FileMode.Create, 0, IntPtr.Zero), _
        IO.FileAccess.ReadWrite, True)
    End Function
 
    Public Function getAsyncCommFileStream(ByVal PortIndex As Integer, Optional _
      ByVal bufsize As Integer = 512, Optional ByVal access As IO.FileAccess = _
      IO.FileAccess.ReadWrite, Optional ByVal share As IO.FileShare = _
      IO.FileShare.ReadWrite) As IO.FileStream
        Return New IO.FileStream(CreateFile("\\.\COM" & PortIndex.ToString, _
        access, share, 0, IO.FileMode.Create, FILE_FLAG_OVERLAPPED Or _
        FILE_FLAG_NO_BUFFERING, IntPtr.Zero), IO.FileAccess.ReadWrite, True, _
        bufsize, True)
    End Function
ich versteh echt die welt nicht mehr


ahoi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Das Mysterium des Ungültigen Handles890Urot15.04.05 18:10
Re: Das Mysterium des Ungültigen Handles569Urot15.04.05 18:20

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel