Da der allseits bekannte Forentroll wieder aufgeschlagen ist, noch schnell die exakte Benatwortung deiner Frage :
Zitat:
wie kann man in einer Funktion eine DLL aufrufen?
|
Nun, du hast das passende in AutoIt bereits genannt :
Code:
DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
Sofern du hier einfach dein gewünschte Funktion einträgst und auch aufpasst dass du dir keine Buffer Overflows produzierst scheint es in AutoIt wohl so zu funktionieren - auch ganz ohne LoadLibrary ... das wird denke ich im Hintergrund erledigt. Im Beispiel wird wohl "WriteProcessMemory" aufgerufen ... das sollte dich aber nicht verwirren, hat nichts mit
der Vorgehensweise zu tun, das Übertragen in VB scheint kinderleicht zu sein :
Code:
Declare Sub getdiskinfo Lib "c:\somepath\diskinfo.dll"
(ByVal mydrive As String, ByVal myvolume As String, free As Long)
... da wird nichts geschrieben oder gelesen (mal von eventuellen Parametern abgesehen) sondern nur angesprungen, und zwar direkt in den Maschinencode in einer Datei auf der Platte - aber auch dass soll dich nicht weiter stören; die Erklärung hierfür sprengt jeden Rahmen ... is ja auch in Bezug auf das Thema nicht wichtig.