vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 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 & Windows API
Re: Rückgabewert Pointer auf Struktur 
Autor: mario09
Datum: 25.08.05 11:14

sorry, das war nur ein Versuch von mir. Die Funktion habe ich aus einer VB.Net Applikation übernommen. Da war es ursprünglich als IntPtr deklariert. Habe mich auch etwas falsch ausgedrückt. Natürlich übergebe ich der Funktion diesen Zeiger damit sie an diese Stelle die Struktur schreiben kann. Es ist eine API Funktion die mir Informationen in Form einer Struktur über angeschlossene Geräte zurückliefert (Seriennummer, Hersteller usw.).
In der .net Applikation wird hier vorher noch statisch Speicher in der Größe der Struktur allokiert mit Marshal.AllocHGlobal, damit erhält man einen Zeiger auf den Bereich und der wird übergeben. Das gleiche hab ich in VB6 mit Malloc versucht und den erhaltenen Zeiger als Long übergeben. Wenn ich dann versuche mit CopyMemory den Speicherinhalt in eine nach der Struktur angelegten Variable zu schieben, sürzt mir die VB IDE regelmäßig ab. Wenn ich Glück habe kann ich mir noch den Inhalt der Variablen ansehen, wo aber nur Kauderwelsch drin steht. Hier ein kurzer Auschnitt vom Code:

 
private sub lap
        Dim i As Integer
        Dim ret As Integer
        Dim piCount As Integer
        Dim buffer As Long
        Dim ptr As Long
        Dim pDevices() As CONAPI_DEVICE
        Dim pDev As CONAPI_DEVICE
        Dim length As Long
 
        ' Querying count of connected devices
        ret = CONAGetDeviceCount(m_hDMHandle, piCount)
        If ret <> CONA_OK Then ShowErrorMessage "CONAGetDeviceCount", ret
        If ret = CONA_OK And piCount > 0 Then
            ReDim pDevices(piCount)
            ReDim m_strSerialNumbers(piCount)
            ' Allocate memory for buffer
            buffer = isMalloc.Alloc(piCount * Len(pDev))
            length = Len(pDev)
 
     ret = CONAGetDevices(m_hDMHandle, piCount, buffer)
 
     Call CopyMemory(ByVal VarPtr(pDev), ByVal (buffer), length)
 
 End lap
Besten Dank
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Rückgabewert Pointer auf Struktur1.550mario0924.08.05 17:24
Re: Rückgabewert Pointer auf Struktur1.039ModeratorMartoeng24.08.05 20:37
Re: Rückgabewert Pointer auf Struktur1.184mario0925.08.05 11:14
Re: Rückgabewert Pointer auf Struktur1.080ModeratorMartoeng25.08.05 11:27
Re: Rückgabewert Pointer auf Struktur1.013mario0925.08.05 11:31
Re: Rückgabewert Pointer auf Struktur1.129ModeratorMartoeng25.08.05 11:54
Re: Rückgabewert Pointer auf Struktur1.007mario0925.08.05 12:08
Re: Rückgabewert Pointer auf Struktur1.031ModeratorMartoeng25.08.05 12:20
Re: Rückgabewert Pointer auf Struktur1.055mario0925.08.05 12:26
Re: Rückgabewert Pointer auf Struktur988ModeratorMartoeng25.08.05 12:57
Re: Rückgabewert Pointer auf Struktur988mario0925.08.05 13:04
Re: Rückgabewert Pointer auf Struktur1.072ModeratorMartoeng25.08.05 13:33
Re: Rückgabewert Pointer auf Struktur994mario0925.08.05 14:54
Re: Rückgabewert Pointer auf Struktur1.008Radeonmaster25.08.05 19:12
Re: Rückgabewert Pointer auf Struktur1.090mario0925.08.05 19: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