Programm funktioniert nach dem Compilieren nicht mehr richtig!

  • Hallo,
    ich habe ein Programm, dass einen durch eine Batch-Datei erstellten Text in ein Edit-Feld schreibt, geschrieben.
    Wenn ich in Scite F5 drücke funktioniert auch aller super, aber wenn ich Rechtslick->Run mache oder compiliere und dann die Exe starte erscheint kein Text in der Edit.
    Was soll ich machen?

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

    Einmal editiert, zuletzt von retrokid (15. Dezember 2011 um 18:53)

  • Sry, aber das Programm wird nacher verkauft, deshalb kann ich weder den Code noch die Exe hier preisgeben. Die Exe ist im richtigen Verzeichnis.

    Edit: Mache ich Run(x64) bzw. Compile x64 so funktioniert es
    Mit Compile(x64) ebenso, aber können das jetzt alle, d.h. XP-Nutzer/Win7-Nutzer mit 32-Bit benutzen?

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Habe ich mir schon gedacht. Was soll ich nun machen, damit das Programm auch bei 32er Nutzer geht?

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Ok, hier die Teile, die dafür zuständig sind:

    Spoiler anzeigen
    [autoit]


    $ServerControlTab = GUICtrlCreateTabItem("Server-Control")

    [/autoit] [autoit][/autoit] [autoit]

    $ChatLogEdit = GUICtrlCreateEdit("", 8, 92, 675, 401, BitOR($ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL))
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xffffff)

    [/autoit] [autoit][/autoit] [autoit]

    ...

    [/autoit] [autoit][/autoit] [autoit]

    AdlibRegister("_getLog", 1000)

    [/autoit] [autoit][/autoit] [autoit]

    ...

    [/autoit] [autoit][/autoit] [autoit]

    Func _getLog()
    If StringReplace(StringReplace(FileRead(@ScriptDir & "\Files\Server\server.log"), @YEAR, @CRLF & @YEAR), @CRLF, "", 1) <> $LogOld Then
    GUICtrlSetData($ChatLogEdit, StringReplace(StringReplace(FileRead(@ScriptDir & "\Files\Server\server.log"), @YEAR, @CRLF & @YEAR), @CRLF, "", 1))
    _GUICtrlEdit_LineScroll($ChatLogEdit, 0, _GUICtrlEdit_GetLineCount($ChatLogEdit))
    $LogOld = StringReplace(StringReplace(FileRead(@ScriptDir & "\Files\Server\server.log"), @YEAR, @CRLF & @YEAR), @CRLF, "", 1)
    EndIf
    EndFunc ;==>_getLog

    [/autoit]

    Das mit den Pfaden kann ja eigentlich nicht sein, da es keinen Unterscheid macht, ob ich Rechtsklick->Run oder F5 in Scite mache.

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Also in der Passage die du gepostet hast sollte es keinen unterschied machen ob X32 oder X64..

    Gruß Marvin

  • Autoit läuft soweit ich weiß auf x32 sowie x64 je nachdem wie du es Compilierst, ich verstehe nicht wie wir dir ohne dein SourceCode helfen sollen.. wenn du uns nichts zeigst können wir dir nicht helfen.

    Gruß Marvin

  • Es kann unterschiedliche Ursachen haben. Wie schon mehrmals gesagt kann man ohne den Code nichts dazu sagen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ich hab doch schon viel gepostet, der Rest funktioniert ja. Nur halt nicht das Auslesen. Hier nochmal die Funktion die beim Klick auf Start ausgeführt wird:

    Spoiler anzeigen
    [autoit]

    GUICtrlSetState($StartButton, $GUI_DISABLE)
    GUICtrlSetState($RestartButton, $GUI_DISABLE)
    GUICtrlSetState($BackupButton, $GUI_DISABLE)
    GUICtrlSetState($HideLabel, $GUI_SHOW)
    HotKeySet("{RIGHT}", "_blockTabs")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($ChatLogEdit, "")

    [/autoit] [autoit][/autoit] [autoit]

    If $RamBoost = "" Then
    Run(@ScriptDir & "\Files\Server\run0.bat", @ScriptDir & "\Files\Server\", @SW_HIDE)
    ElseIf $RamBoost = "1024MB" Then
    Run(@ScriptDir & "\Files\Server\run1.bat", @ScriptDir & "\Files\Server\", @SW_HIDE)
    ElseIf $RamBoost = "2048MB" Then
    Run(@ScriptDir & "\Files\Server\run2.bat", @ScriptDir & "\Files\Server\", @SW_HIDE)
    ElseIf $RamBoost = "3072MB" Then
    Run(@ScriptDir & "\Files\Server\run3.bat", @ScriptDir & "\Files\Server\", @SW_HIDE)
    EndIf
    FileDelete(@ScriptDir & "\Files\Server\server.log")

    [/autoit] [autoit][/autoit] [autoit]

    AdlibRegister("_getLog", 1000)

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("[class:ConsoleWindowClass]", "")
    $CMDTitle = WinGetTitle("[class:ConsoleWindowClass]")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(50)
    If StringInStr(GUICtrlRead($ChatLogEdit), "For help, type") <> "" Then ExitLoop
    WEnd
    $Aktiv = True
    AdlibUnRegister("_blockTabs")
    GUICtrlSetData($StartButton, "Stop")
    GUICtrlSetState($StartButton, $GUI_ENABLE)
    GUICtrlSetState($RestartButton, $GUI_ENABLE)
    GUICtrlSetState($CMDKickButton, $GUI_ENABLE)
    GUICtrlSetState($CMDGiveItemButton, $GUI_ENABLE)
    GUICtrlSetState($CMDBanButton, $GUI_ENABLE)
    GUICtrlSetState($CMDBanIPButton, $GUI_ENABLE)
    GUICtrlSetState($CMDPardonButton, $GUI_ENABLE)
    GUICtrlSetState($CMDPardonIPButton, $GUI_ENABLE)
    GUICtrlSetState($CMDTellButton, $GUI_ENABLE)
    GUICtrlSetState($CMDTeleportButton, $GUI_ENABLE)
    GUICtrlSetState($CMDSayButton, $GUI_ENABLE)
    GUICtrlSetState($CMDSetTimeButton, $GUI_ENABLE)
    GUICtrlSetState($CMDOpButton, $GUI_ENABLE)
    GUICtrlSetState($CMDDeOpButton, $GUI_ENABLE)
    GUICtrlSetState($CMDGiveXPButton, $GUI_ENABLE)
    GUICtrlSetState($CMDToggleButton, $GUI_ENABLE)
    GUICtrlSetState($BackupButton, $GUI_ENABLE)
    GUICtrlSetState($CommandInput, $GUI_ENABLE)
    GUICtrlSetState($CMDHelpButton, $GUI_ENABLE)
    GUICtrlSetState($HideLabel, $GUI_HIDE)
    HotKeySet("{RIGHT}")

    [/autoit]
    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Ein Codefetzen wird auch nicht viel bringen.
    Ein Minimalbeispiel das man nachvollziehen kann bei dem der Fehler auftritt wäre schon notwendig.
    Halt einfach einen vollständigen funktionierenden Code den jeder einfach nur testen kann ohne noch was zu verändern.
    Desweiteren solltest du noch konkret sagen was eigentlich nicht funktioniert. Bisher hast du ja eigentlich nur als Fehlerbeschreibung gepostet: "Geht nicht - Text erscheint nicht".
    Welcher Text?, Wo kommt er her?, Was sollte passieren wenn es funktionieren würde?... etc.
    Halt eine vernünftige Problembeschreibung mit konkreten Aussagen welche den potentiell Helfenden nicht noch zusätzlich die Aufgabe des Gedankenlesens aufbürdet.

    Wenn du nicht verrätst was passiert und auch sonst so geheimnisvoll tust musst du auch alleine den Fehler finden.

  • Ich bin das Programm nochmal Schritt für Schrittt durchgegangen und habe den Fehler gefunden.
    Ich würde ihn gern beschreiben, doch dazu müsste ich mindestens 50% meiner 2500 Zeilen erläutern.
    Eins kann ich aber sagen, dieser Fehler ist echt komisch und hat nichts mit einem Befehl zu tun.
    Viel eher lag es an einer Schleife, die abgeändert werden musste, damit nun endlich wieder alles funktioniert.
    Danke an alle, die versucht haben, mir zu helfen ;)

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D