Programm mit DLL

24/09/2007 - 08:52 von Marco | Report spam
Hallo

Ich schreibe ein Programm, dass über ein Netzwerk kommuniziert. Die
Kommunikation übernimmt eine DLL, die in C geschrieben ist. Sie benutzt
folgendes Struct zur Datenübermittlung:

typedef struct _new_params
{
char newf;
unsigned long ip_address;
unsigned long netmask;
unsigned long gateway;
#ifdef VERSION2
unsigned char use_dhcp;
#endif
} NEW_PARAMS;

typedef struct
{
unsigned char addr[6];
NEW_PARAMS params;
char ID_String[80];
char Address[80];
} MAC_ADDR;

Die Steuerung sollte allerdings über VB.NET erfolgen. Wie kann ich diese
Datenpakete nun in mein VB Programm übertragen? Oder sollte ich jede Variable
einzeln zurückgeben? Danke für die Hilfe.

Mit freundlichen Grüssen

Marco Hemmerle
 

Lesen sie die antworten

#1 Marco Hemmerle
24/09/2007 - 11:29 | Warnen spam
Ich habe es folgendermassen Probiert:

Public Structure NEW_PARAMS

Public newf As String

Public ip_adress As Long

Public netmask As Long

Public gateway As Long

End Structure

Public Structure MAC_ADDR

Public addr() As String

Public params As NEW_PARAMS

Public ID_string() As String

Public Adress() As String

End Structure

Declare Auto Function read_socket Lib "ipconf.dll" (ByVal flag As Integer)
As MAC_ADDR



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Dim addr As MAC_ADDR

addr = read_socket(0)

Me.Label1.Text = addr.addr(0)

End Sub


Dabei erhalte ich aber immer folgenden Fehler:

"MarshalDirective was unhandled" "Die Typensignatur ist nicht
PInvoke-kompatibel"

was mache ich falsch???

Ähnliche fragen