Forum: VB.NET |
Thema:
AddressOf bei VB.Net |
Von:
G. Guest (
06.12.2004 12:52) |
Hi,
Habe ein Problem und komme nicht wieder!!
Bei VB6 konnte man nach einer Deklaration:
Declare Function SetFilter Lib "saream.dll" (ByVal PID As Integer, ByVal ReadDataFunction As Long, ByVal CallBackTyp As Long, ByVal Size As Long, ByVal filter_num As Long) As Boolean
eine Funktion wie:
Public Function ReadDataFunction(ByVal buff As Byte, ByVal Laenge As Long) As Long
A2 = buff
Bufferl = buff
End Function
mit
SetFilter(ato, AddressOf ReadDataFunction, 2, 1, 0)
aufrufen.
Das geht mit VB.Net nicht mehr. Habe schon überall nachgelesen und komme nicht weiter. Hat jemand für mich eine Möglichkeit wie ich in .Net diese Funktion aufrufe.
Danke
Harald
Betreff |
Von |
Datum |
|
  |
Re: AddressOf bei VB.Net
Grundsätzölich geht das sicher noch<br><br>siehe http://www.devtrain.de/news.aspx?artnr=709<br> |
 |
 |
 |
|
|
Hannes
Preishuber
|
06.12.2004 13:23 |
|
  |
Re: AddressOf bei VB.Net
Das die Declare noch geht ist mir klar, nur der Aufruf über eine Funktion ist das Problem. <br><br>SetFilter(ato, AddressOf Streame.ReadDataFunction, 2, 1, 0)<br><br>Gibt den Fehler zurück:<br><br>Der Ausdruck... |
 |
 |
 |
|
|
G.
Guest
|
06.12.2004 13:58 |
|
  |
Re: AddressOf bei VB.Net
Hallo,<br><br>AddressOf wird in Visual Basic .NET nur noch im Zusammenhang mit Delegates (Objektorientierte Funktionszeiger) benutzt. <br>Probiers mal so:<br><br> Dim A2 As Byte<br> Dim Bufferl As Byte<br><br> ... |
 |
 |
 |
|
|
Tobi
Ulm
|
07.12.2004 10:15 |
|
|
G.
Guest
|
07.12.2004 12:20 |
|
  |
Re: AddressOf bei VB.Net
Hi,<br><br>es hat nicht gebracht!!<br><br>Da bei VB6 mit AddressOf die Adresse der Prozedur an die dll übergeben wird ist deine Lösung unbrauchbar, da so nur ein fester Werd übergeben wird. Ich brauche aber... |
 |
 |
 |
|
|
G.
Guest
|
07.12.2004 22:05 |
|
  |
Re: AddressOf bei VB.Net
Hi Harald<br><br>Dann wirst Du wohl oder übel mit Delegates arbeiten und CallBack Handler definieren müssen. Denn nur über Delegates kommt man an die "Adresse" einer managed Funktion.<br><br>cu<br><br>Tobi |
 |
 |
 |
|
|
Tobi
Ulm
|
08.12.2004 09:53 |
|
  |
Re: AddressOf bei VB.Net
Hi,<br><br>Habe es mal so versucht:<br><br>Public Delegate Function Read(ByVal buff As Byte, ByVal Laenge As Integer) As Object<br><br>Dim a As New Read(AddressOf Streame.ReadDataFunction)<br>a = AddressOf... |
 |
 |
 |
|
|
G.
Guest
|
08.12.2004 10:19 |
|
  |
Re: AddressOf bei VB.Net
Hi Harald,<br><br>hier ein bisschen Code:<br><br>TestCallBack exported von PinvokeLib.dll.<br>TestCallBack2 exported von PinvokeLib.dll.<br><br><br><br>Public Delegate Function FPtr( ByVal value As Integer ) As... |
 |
 |
 |
|
|
Tobi
Ulm
|
08.12.2004 14:12 |
|
  |
Re: AddressOf bei VB.Net
Hi Tobi,<br><br>habe es mal so Probiert:<br><br><br>Public Delegate Function MySRead(ByVal buff As Byte, ByVal Leg As Integer) As Integer<br><br><DllImport("streamreader.dll")> _<br>Public Shared Function... |
 |
 |
 |
|
|
G.
Guest
|
08.12.2004 16:36 |
|
  |
Re: AddressOf bei VB.Net
Hi Harald, <br><br>die erste Fehlermeldung sagt wahrscheinlich aus das der Delegate nothing ist. Die zweite Fehlermeldung ist auch ganz klar Du darfst kein DatenTyp Object... |
 |
 |
 |
|
|
Tobi
Ulm
|
08.12.2004 16:45 |
|
  |
Re: AddressOf bei VB.Net
Hi ich nochmal,<br><br>AddressOf Streame.ReadDataFunction<br><br>Mach das mal so wie ich Dir zuvor im Source geschickt habe. <br>1. Variable vom Type des Zeigers<br>2. Variable setzen auf AddressOf... |
 |
 |
 |
|
|
Tobi
Ulm
|
08.12.2004 16:49 |
|
  |
Re: AddressOf bei VB.Net
<br>Hi Tobi,<br><br>habe das mal so gemacht. Bekomme aber immer noch "False" zurück. Wenn ich als Integer deklariere geht es gar nicht, da ein Mischen von Variablen bei Delegate nicht möglich ist.... |
 |
 |
 |
|
|
G.
Guest
|
08.12.2004 18:47 |
|
  |
Re: AddressOf bei VB.Net
Hi Harald,<br><br>hast du auch schon mal das Bsp, dass ich Dir als erstes geschickt hatte ausprobiert. Denn dies geht bei mir Einwandfrei. Das problem ist ich habe Deine streamreader.dll nicht. Ist... |
 |
 |
 |
|
|
Tobi
Ulm
|
09.12.2004 09:46 |
|
  |
Re: AddressOf bei VB.Net
Hi Tobi,<br><br>werde es mal probieren. Die dll würde ich dir schon zukommen lassen, aber die setzt auf eine TV-Karte auf und die musst du auch installiert haben. Glaube nicht das du eine Nexus-S im... |
 |
 |
 |
|
|
G.
Guest
|
09.12.2004 10:41 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!