C DLL in VB.NET einbinden

Gast #3588347
Lesenswert?

Hallo,
ich möchte eine Dll in VB einbinden.

Für die Funktion TestF mache ich das so
Funktion in c:
1
int TestF(int Test);

<DllImport("TestDll.dll")>
Public Shared Function TestF(ByVal Test As Integer) As Integer
End Function

Aufruf dann über:

Dim res as Integer
res = TestF(1)

Jetzt habe ich auch eine Funktion die einen bool-pointer braucht:
1
int SyncTest(int iVersion,
2
             bool *pbSyncPassed,
3
             int iTestNr,
4
             int iTestcase);

Ich habe keine Ahnung wie ich den bool pointer übergebe und wie ich dann 
im Programm die Funktion aufrufe?
Kann mir bitte jemand helfen?
Danke schonmal
Gast #3589217
Lesenswert?

muss ich den IntPtr in VB dann byVal oder byRef übergeben?

kannst du ein VB CodeBeispiel zeigen? wenn ich die Funktion deklariere 
als:

Public Shared Function SyncTest(ByVal iVersion As Integer, _
ByRef bSyncPassed as IntPtr, ByVal iTestNr As Integer, _
ByVal iTestcase As Integer) As Integer
End Function

Da motzt der Compiler, wenn ich es als ByVal deklariere auch ... ich 
komm irgendwie nicht weiter mit dem blöden bool pointer.
Boolean pointer gibt es in VB nicht und soweit ich weiß ist VB boolean 
!= C bool.
Klappt es evtl nicht weil C bool 1 byte ist und der VB integer 4 byte?
Kann ich in VB einen pointer auf ein 1 byte objekt erstellen? wie?
Kann bitte jemand einfach ein VB Beispiel posten wie man die Funktion 
SyncTest in einem VB Programm deklariert und anspricht?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren