Thread Win32::API Übergabe Structuren an Dll
(5 answers)
Opened by hummer at 2015-07-29 18:52
Hallo Forum,
ich benötige noch einmal eure Hilfe im Umgang mit DLL und der Übergabe von Strukturen. Einleitend, möchte ich euch gern erst einmal den C-Code vorlegen, welcher mit zur Verfügung steht. C-Main Code: (dl
)
1 void main() Dieser Code benutz folgende C-Struct Code: (dl
)
1 typedef struct { So, nun möchte ich gern mein Programm dazu veranlassen, die Funktion AdsGetLocalAddress aufzurufen, die Parameter zu übergeben, und die Werte in einen z.B. Hash oder String + Array zu speichern. Die Funktion bekommt den Struct übergeben, in welche sie zwei Werte Speichert. Zum einen speichert die den Port, welcher geöffnet wurde, zum anderen die NetId. Als Rückgabewert bekomme ich den Fehlercode, ob die Funktion erfolgreich war oder ein Fehler vorliegt. Meine Versuche mit der Dll waren bisher erfolgreich, wenn es um die Datenabfrage ging, aber leider nicht bei der Struct-Übergabe Mein Versuch Object: Code: (dl
)
1 sub new { Soweit so gut, das einzige was hierbei noch falsch sein kann ist der Parameter, zur Übergabe 'P' Was habe ich bisher probiert: ich habe mit Win32:.API::Struct eine Struktur angelegt, wie diese im C-Code Code: (dl
)
1 ... Fehler: Use of uninitialized value in pack at C:/Perl/lib/Win32/API/Struct.pm line 317. Use of uninitialized value in pack at C:/Perl/lib/Win32/API/Struct.pm line 317. Win32::API a function was called with the wrong prototype and caused a C stack inconsistency EBP=28f8a0 ESP=28f89c ich habe die jeweiligen Parameter gepackt: Code: (dl
)
1 sub GetLocalAddr { Fehler: Win32::API a function was called with the wrong prototype and caused a C stack inconsistency EBP=28f8a0 ESP=28f89c Kann mir jemand helfen, wie ich hierbei am besten vorgehe kann. Vielen Dank |