DLL Open / Call zu langsam
-
- [ gelöst ]
-
Chrischn -
10. November 2009 um 16:29 -
Geschlossen -
Erledigt
-
-
Moin moin! Und ein fettes Danke für das in meinen Augen GROßE Engagement!
Aber ich glaub da funzt wad nicht: AutoIt sagt dazu in beiden Fällen ( MultiOut32Test und MultiOut32 ) :
C:\Users\__\DllWrapper\DllWrapper\Wrapper.au3 (10) : ==> Subscript used with non-Array variable.:
MsgBox(0, "StringTest ,Test,", $result[0])
MsgBox(0, "StringTest ,Test,", $result^ ERROR$Return ist kein Array und beinhaltet 0 .
Was tun? Ich kann die Sache in reality auch erst am Dienstag wieder an der Maschine testen.
Und noch was: Was macht die Funktion genau? Wird im Wechsel der $Zu_schreibender_DezimalWert und Null auf den Port geschrieben?
Das wär ja toll!! -
Hi,
du benötigst das .NET-Framework 2 für die Wrapper dll.
Nur zur Info was gibt die Out32 eigendlich für einen Wert zurück? Ist das 0 für erfolgreiches schreiben und -1 bei Fehler oder was?Derzeit schreibt er immer nur den Dezimalwert an den Port ohne 0 aber das kann man schnell ändern.
Wenn dann alles läuft änder ich die Wrapper noch mal schnell das sie die 0 sendet.MFG. RAPTOR-ONE
-
Ich hab mich jetzt auch mal dran versucht (braucht kein .NET)
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
$Out32DLL = DllOpen("inpout32.dll")
$MultiOut32DLL = DllOpen("inpout32Wrap.dll")Func _MulitOut32($Addresse, $Wert, $Wert2, $Wiederholungen)
[/autoit]
;Author: Prog@ndy
DllCall($MultiOut32DLL, "none", "MultiOut32@16", "int", $Addresse, "int", $Wert, "int", $Wert2, "int", $Wiederholungen)
If @error Then Return SetError(1)
EndFunc
Func _MulitOut32Sleep($Addresse, $Wert, $Wert2, $Wiederholungen, $Pause)
;Author: Prog@ndy
DllCall($MultiOut32DLL, "none", "MultiOut32@16", "int", $Addresse, "int", $Wert, "int", $Wert2, "int", $Wiederholungen, "int", $Pause)
If @error Then Return SetError(1)
EndFunc -
Hi,
du benötigst das .NET-Framework 2 für die Wrapper dll.
Nur zur Info was gibt die Out32 eigendlich für einen Wert zurück? Ist das 0 für erfolgreiches schreiben und -1 bei Fehler oder was?Derzeit schreibt er immer nur den Dezimalwert an den Port ohne 0 aber das kann man schnell ändern.
Wenn dann alles läuft änder ich die Wrapper noch mal schnell das sie die 0 sendet.MFG. RAPTOR-ONE
Ich stelle fest, der Call liefert in jedem Fall die 0 zurück. Erfolg und Misserfolg = 0.
Wieviel Arbeit steckt da bis jetzt drin, wenn ich mal fragen darf?
-
Hi,
ich hatte eigendlich die orginal dll gemeint.Wenn mindestens das .NET-Framework 2 installiert ist und das Skript und die Wrapper-dll im selben Verzeichnis liegen funktioniert diese definitiv. Es sei den du Startes das Skript als 64-Bit Skript. Es muss als 32Bit Skript ausgeführt werden (x86).
MFG. RAPTOR-ONE
-
Hi,
ich hatte eigendlich die orginal dll gemeint.Wenn mindestens das .NET-Framework 2 installiert ist und das Skript und die Wrapper-dll im selben Verzeichnis liegen funktioniert diese definitiv. Es sei den du Startes das Skript als 64-Bit Skript. Es muss als 32Bit Skript ausgeführt werden (x86).
MFG. RAPTOR-ONE
OOoo!!! als x86er löppts !!!!
-