vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 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
Problem mit Marshalling... 
Autor: +++MaRuSo+++
Datum: 21.11.10 23:22

Bei der ausführung des unten aufgeführten Codes Tritt die Fehlermeldung

Zitat:


FatalExecutionEngineError wurde erkannt.
Message: Die Laufzeit hat einen schwerwiegenden Fehler entdeckt. Fehleradresse: "0x792d884c" in Thread "0xe18". Fehlercode: 0xc0000005. Bei diesem Fehler könnte es sich um ein Problem in der CLR oder in den unsicheren oder nicht verifizierbaren Teilen des Benutzercodes handeln. Übliche Ursachen dieses Bugs sind Marshallerfehler für COM-Interop oder PInvoke, die den Stapel beschädigen können.


auf.

Leider komm ich bei der Fehleranalyse nicht weiter. Sieht für mich alles so aus als sollte es eigentlich funktionieren.
Hat vielleicht jemand einen Tip warum ich diesen Fehler bekomme und wie ich das Problem beheben kann?

Das Programm soll alle im Netzwerk verfügbaren Computer auflisten.

Imports System.Runtime.InteropServices
Module Module1
 
    Private Declare Unicode Function NetServerEnum Lib "netapi32.dll" _
    (ByVal Servername As IntPtr, _
    ByVal Level As Integer, _
    ByRef bufptr As IntPtr, _
    ByVal PrefMaxLen As Integer, _
    ByRef entriesread As Integer, _
    ByRef TotalEntries As Integer, _
    ByVal serverType As Integer, _
    ByVal Domain As IntPtr, _
    ByVal ResumeHandle As IntPtr) As Integer
 
    Declare Unicode Function NetApiBufferFree Lib "netapi32.dll" _
    (ByRef buffer As IntPtr) As Long
 
    Public Structure _SERVER_INFO_100
        Friend sv100_platform_id As Integer
        <MarshalAs(UnmanagedType.LPWStr)> Friend sv100_name As String
    End Structure
 
 
    Public Function GetNetworkComputers() As ArrayList
        Dim networkComputers As New ArrayList()
        Const MAX_PREFERRED_LENGTH As Integer = -1
        Dim SV_TYPE_WORKSTATION As Integer = 1
        Dim SV_TYPE_SERVER As Integer = 2
        Dim buffer As IntPtr = IntPtr.Zero
        Dim tmpBuffer As IntPtr = IntPtr.Zero
 
        Dim entriesRead As Integer = 0
        Dim totalEntries As Integer = 0
        Dim resHandle As Integer = 0
        Dim sizeofINFO As Integer = Marshal.SizeOf(GetType(_SERVER_INFO_100))
 
        Try
            Dim ret As Integer = NetServerEnum(Nothing, 100, buffer, _
              MAX_PREFERRED_LENGTH, entriesRead, totalEntries, _
                                               SV_TYPE_WORKSTATION Or _
                                               SV_TYPE_SERVER, Nothing, _
                                               resHandle)
 
            If ret = 0 Then
                For i As Integer = 0 To totalEntries
                    tmpBuffer = New IntPtr(CType(buffer, Integer) + (i * _
                      sizeofINFO))
 
                    Dim svrInfo As _SERVER_INFO_100 = CType( _
                      Marshal.PtrToStructure(tmpBuffer, GetType( _
                      _SERVER_INFO_100)), _SERVER_INFO_100) ' <<< *** HIER 
                    ' TRITT DER FEHLER AUF! ***
 
                    networkComputers.Add(svrInfo.sv100_name)
                Next
            End If
        Catch ex As Exception
            Console.WriteLine("Error getting network computers.")
        Finally
            NetApiBufferFree(buffer)
        End Try
 
        Return networkComputers
    End Function
 
    Sub Main()
        Dim networkComps As ArrayList = GetNetworkComputers()
        For Each Str As String In networkComps
            Console.WriteLine(Str)
        Next
    End Sub
 
End Module


Beitrag wurde zuletzt am 21.11.10 um 23:29:00 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem mit Marshalling...1.928+++MaRuSo+++21.11.10 23:22
Re: Problem mit Marshalling...1.164Drapondur22.11.10 00:05
Re: Problem mit Marshalling...1.109+++MaRuSo+++22.11.10 02:20
Re: Problem mit Marshalling...1.102ModeratorDaveS22.11.10 08:03
Re: Problem mit Marshalling...1.090+++MaRuSo+++22.11.10 09:54
Re: Problem mit Marshalling...1.098ModeratorDaveS22.11.10 10:18

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