| |

VB.NET - FortgeschrittenePinvoke , Marshal Problem | |  | Autor: becks | Datum: 09.08.05 13:31 |
| hallo, ich versuche verzweifelt funktionen einer dll aufzurufen, vieleicht kann mir hier jemand helfen.
hier ein teil der DLL Doku:---------------------------------------------------------
procedure CreateServerAndMakeListenToClients( vProcessProc: TProcWithPChar;
vWriteToLogProc: TProcWithPChar;
onClientConnectProc: TProc;
onClientDisconnectProc: TProc;
vPort: PChar);
Procedure creates Server communication object, with defined parameters and starts waiting for Client(s).
This procedure is used by Server application - remote control program.
Input parameters are:
vProcessProc: TProcWithPChar - define pointer to procedure which will be called every time Server
receives message(s) from Client.
vWriteToLogProc: TProcWithPChar - define pointer to procedure which is useful especially during
debugging of Server program. Procedure is called when any of basic Client-Server communication events
occures.
Communication events are: connect/disconnect Client-Server, send message to Client, receive message
from Client. Procedure can contain user defined write to memo or log window of Server application.
onClientConnectProc: TProc - procedure is called as event when Client is connected to Server
onClientDisconnectProc: TProc - procedure is called as event when Client is disconnected from Server
vPort - defines port for TCP communication (default is 'telnet')
Server does not have address defined itself. Internally Server has defined address 0.0.0.0, which means,
that Server accepts Clients from all interfaces.
das ist die Doku zu einer der Funktionen die ich aufrufen will
im Moment versuch ich es so:
'Delegate wird erzeugt
Public Delegate Sub makeDelegate(ByVal line As String)
Public Delegate Sub makeDelegate(ByVal line As String)
Public Delegate Sub makeDelegate2()
Dim objDelegateWithStringParam As makeDelegate
Dim objDelegateWithoutpar As makeDelegate2 'pointer wird eine Adresse zugewiesen
objDelegateWithStringParam = AddressOf meineFunction
objDelegateWithoutpar = AddressOf meineFunction2 <DllImport("remotelb.dll", _ EntryPoint:="CreateServerAndMakeListenToClients", _
SetLastError:=True, CharSet:=CharSet.Unicode, _
ExactSpelling:=True, _
CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function MeinAlias(ByVal vProcessProc _ As makeDelegate, ByVal _
WriteToLogProc As makeDelegate, _ ByVal vPort As makeDelegate2, ByVal vAddr As _
_ makeDelegate2)
' Leave function empty - DLLImport attribute _ forwards calls to
' CreateServerAndMakeListenToClients to _
' CreateServerAndMakeListenToClients in _ remotelb.DLL.
End Function und so der aufruf
MeinAlias(objDelegateWithStringParam, objDelegateWithStringParam, _
objDelegateWithoutpar, objDelegateWithoutpar) ach ja das ganze hab ich ntürlich auch schon mit declare versucht? was mach ich falsch? wie muß ich die Variablen deklarien damit das marshalen funktioniert???
oder mach ich was ganz falsch?
Bei anderen funktion mit datentypen wie integer oder Boolean ist alles kein Problem.
aber hier bekomme ich immer die Fehlermeldung
Eine nicht behandelte Ausnahme des Typs 'System.Runtime.InteropServices.MarshalDirectiveException' ist in Smartprog.exe aufgetreten.
Zusätzliche Informationen: PInvoke-Einschränkung: Es können keine Varianten zurückgegeben werden
wäre toll wenn mir mal jemand weiterhelfen könnte
die Dll heist remotlb.dll und ist hier enthalten
http://www.elnec.com/sw/pg4uwarc.exe |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
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
|
|