So etwas ist mir noch nie passiert: ich deklariere die Variable: $Socket = UDPBind($IP, $Port) und sobald ich eine Funktion aufrufe in der ich diese Verwende ist sie nicht mehr deklariert
Auch wenn ich den Socket in eine andere Variable speicher, funktioniert es nicht: $realSocket = $Socket[1] ???
Das ist doch nicht normal oder? :wacko:
Mal sehen was ihr dazu sagt
Aquaplant
Variable wird gelöscht bei einem Funktionsaufruf
-
- [ offen ]
-
Aquaplant -
8. Januar 2010 um 11:18 -
Geschlossen -
Erledigt
-
-
Was kommt den als Fehlermeldung zurück?
-
Hast du mal @error abgefragt?
Wenn ein Fehler auftritt ist $Socket = -1, es wird also kein Array erzeugt.Edit: zu langsam
-
Deklarieren ?
Local ?
Global?
bitte Skript oder Glaskugel anfügen!!
-
Hast du mal @error abgefragt?
Wenn ein Fehler auftritt ist $Socket = -1, es wird also kein Array erzeugt.Edit: zu langsam
Genau. Denk nämlich auch das ein Fehler ist und @error auf 1 gesetzt wird und du dann probierst mit einem Array weiterzuarbeiten das nur existiert wenn kein Fehler rauskommt.
-
Fehler sind nicht drin (gewesen), hab alle Möglichkeiten durchgeprüft. Hab jetzt ein "Global" vorgesetzt und nun klappts
Allerdings hatte ich vorher noch nie derartige Probleme; ich schreibe sonst alle Variablen ohne Global, etc. und deklariere sie sobald ich sie brauche. Liegt vielleicht an der neuen Version, das der Fehler kommt?
Aquaplant
PS: Glaskugel?
-
Also so ein bisschen Quellcode wäre ganz net

Meine Glaskugel zickt heut nämlich rum.^^ -
Ahh *klick*

Fehler ist ja schon behoben, aber hier nochmal der Quellcodeausschnitt:Spoiler anzeigen
[autoit]Func Einloggen()
[/autoit] [autoit][/autoit] [autoit]
;~ MsgBox(0, "PW:", $Passwort)
;~ TCPStartup()
;~ $IP = TCPNameToIP("")
;~ TCPShutdown()
$IP = "192.168.0.55"
MsgBox(0, "IP", $IP)
$a = UDPStartup()
If $a = 0 Then
UDPShutdown()
MsgBox(16, "Startup", "Verbindung fehlgeschlagen.")
Else
$Socket = UDPBind($IP, $Port)
If $Socket = -1 Then
UDPShutdown()
MsgBox(16, "Startup", @error)
Else
MsgBox(0, "socket", $Socket[1])
Global $realSocket = $Socket[1] ; <= Hier war der Fehler
Call("Abschicken")
EndIf
EndIf
EndFuncFunc Abschicken()
[/autoit]
MsgBox(0, $realSocket, $Username&":"&$Loginname&":"&$Passwort)
UDPSend($realSocket, $Username&":"&$Loginname&":"&$Passwort)
UDPShutdown()
Call("Eingeloggt")
EndFunc -
Soll ich dir sagen was genau der Fehler war oder bist du selbst draufgekommen?
