Hallo,
ich programmiere unter Visual Studio 2005 und mit VB.net. Dabei soll ich eine Linearachse ansprechen. Der Hersteller der Achse hat eine DLL beigelegt, die in Delphi geschrieben wurde. Diese DLL verwendet einen aynchronen Aufruf, um einen Pointer zu übergeben, der auf eine Struktur zeigt, in der die Daten der Achse liegen. Den Asynchronen Callback und den Zeiger habe ich eigentlich schon hinbekommen. Zumindest steht im IntPtr jedes mal eine andere Zahl drin und die Callback Funktion wird auch aufgerufen. Nach einigem hin und her habe ich jetzt den Quelltext der Struktur bekommen. Trotzdem hänge ich jetzt seit einer Woche an dem Problem.
Die Struktur sieht folgendermaßen aus:
const
MAX_BYTE_ARR = 15;
TCommand = packed record // Datenstruktur für Rückgabe im Callback Mode
aID:integer;
aCommand:integer;
aValue:integer;
byteArr:array[0..MAX_BYTE_ARR] of byte;
end;
Meine Struktur sieht so aus
und ich versuche sie folgendermaßen auszulesen
Kann mir bitte jemand sagen, wie ich die Struktur definieren muss, damit PtrToStructure auch was reinschreibt?
P.S. Wenn ich das Programm mit dem Debugger durchlaufen lasse, kommt keine Fehlermeldung. Die Structur bleibt einfach nur leer. Außerdem habe ich noch einen Teil der Dokumentation der DLL angehängt.
Vielen Dank im Vorraus
ich programmiere unter Visual Studio 2005 und mit VB.net. Dabei soll ich eine Linearachse ansprechen. Der Hersteller der Achse hat eine DLL beigelegt, die in Delphi geschrieben wurde. Diese DLL verwendet einen aynchronen Aufruf, um einen Pointer zu übergeben, der auf eine Struktur zeigt, in der die Daten der Achse liegen. Den Asynchronen Callback und den Zeiger habe ich eigentlich schon hinbekommen. Zumindest steht im IntPtr jedes mal eine andere Zahl drin und die Callback Funktion wird auch aufgerufen. Nach einigem hin und her habe ich jetzt den Quelltext der Struktur bekommen. Trotzdem hänge ich jetzt seit einer Woche an dem Problem.
Die Struktur sieht folgendermaßen aus:
const
MAX_BYTE_ARR = 15;
TCommand = packed record // Datenstruktur für Rückgabe im Callback Mode
aID:integer;
aCommand:integer;
aValue:integer;
byteArr:array[0..MAX_BYTE_ARR] of byte;
end;
Meine Struktur sieht so aus
und ich versuche sie folgendermaßen auszulesen
Kann mir bitte jemand sagen, wie ich die Struktur definieren muss, damit PtrToStructure auch was reinschreibt?
P.S. Wenn ich das Programm mit dem Debugger durchlaufen lasse, kommt keine Fehlermeldung. Die Structur bleibt einfach nur leer. Außerdem habe ich noch einen Teil der Dokumentation der DLL angehängt.
Vielen Dank im Vorraus
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Erox“ ()