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
Struktur bei dynamisch eingebunden DLLs 
Autor: a98
Datum: 31.10.08 10:14

Hallo Leute,

ich habe eine VB.NET DLL erstellt die von einer C++ DLL eingebunden wird.
Ich kann von beiden DLLs aus Funktionen jeweils in der anderen DLL aufrufen.
Das sieht dann so aus:

Public Interface iMyInterface
   Sub SetDllHandle(byval dllHandle as IntPtr)
End Interface
 
Public Class myClass
   Implements iMyInterface
 
   Private Shared myDllHandle As IntPtr ' Handle zur aufrufenden DLL
 
   Public Function SetDllHandle(byval dllHandle as IntPtr)
      myDllHandle = dllHandle ' das Handle zur aufrufenden DLL merken
   End Function
 
   ' Gibt mir das Handle zur Funktion in der anderen DLL
   <DllImport("kernel32.dll", CharSet:=CharSet.Ansi, exactspelling:=True)> _
   Public Shared Function GetProcAddress(ByVal hModule As IntPtr, _
                                         ByVal procName As String) As IntPtr
   End Function
 
   Private Delegate Sub Del_Call() 'DelegateForFunctionPointer
 
   Private Sub AufrufStarten()
      Dim ptr As IntPtr = GetProcAddress(myDllHandle, "FremdeFunktion")
      Dim del As Del_Call = _
         CType(Marshal.GetDelegateForFunctionPointer(ptr, GetType(Del_Call)), _
               Del_Call)
      del() ' <== Das ist der Aufruf, hier erstmal ohne Parameter
   End Sub
End Class
Das Aufrufen klappt mit Parametern vom Typ String, Integer, usw. ganz gut.
Nun möchte ich aber eine Struktur oder besser ein Array von Strukturen übergeben.

Hier meine Fragen:
Wo soll/darf ich die Struktur anlegen, damit sie von beiden DLLs genutzt werden kann?
Wie würde in VB.NET eine Funktion aussehen die eine C++ Struktur empfängt?

Public Sub myFunction(byref myStructure as ????)
End Sub
Kann ich die Funktion GetProcAddress nutzen um iregendwie auf die Strukturdefinition zu kommen?

Wie macht man es bei anderen (Windows-)Dlls die man mit LoadLibrary dynamisch einbindet, wenn man eine Struktur aus dieser DLL benötigt?

Vielen Dank schon mal im Voraus
Alex
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Struktur bei dynamisch eingebunden DLLs785a9831.10.08 10:14

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