- Сообщения
- 3,570
- Репутация
- 632
Всем привет.
столкнулся с непонятным багом.
AutoIT 3.3.16.1
небольшая функция
в коде в общей сложности 5000 строк. В код включены все нужные функции из установочных udf. Так как он должен компилироваться на компе пользователя без установленного autoit.
все работает ок.
добавляю _Timer_SetTimer
эта функция регистрирует _GDIPlus_StripProgressbar, пользовательская функция с официального форума.
При работе кода вылетает ошибка, что в строке $nAllSizeFiles += $aArrayFiles[$i][1] используется необъявленная переменная. Но она объявлена как локальная.
Потом хаотично стала появляться ошибка, что переменная не объявлена, и в других строках кода. При этом, сам код начинает работать криво.
Хотя, я всегда использую опцию
Есть эта опция или нет, ошибка все равно появляется.
Убираю из кода _Timer_SetTimer. Ошибок нет, код после компиляции работает ровно так, как нужно
Такое впечатление, что интерпретатор сходит с ума))
до этого использовал строку вызова
Подобная ошибка не появлялась, однако у некоторых пользователей, у меньшинства, программа подвисала на этом моменте.
В общем, без _Timer_SetTimer и строк выше, все работает ок. Причем, у всех
Кто сталкивался с таким?
столкнулся с непонятным багом.
AutoIT 3.3.16.1
небольшая функция
Код:
Func _ExtractFiles($aNameExt, $sPathExt, $aArrayFiles, $sPathExe)
Local $hFileCreateST = FileOpen($sPathExe, 16)
If $hFileCreateST = -1 Then Return SetError - 25
Local $bReadFile, $hOfileRes, $nAllSizeFiles = 0
For $r = 0 To UBound($aNameExt) - 1
For $i = UBound($aArrayFiles) - 1 To 0 Step -1
$nAllSizeFiles += $aArrayFiles[$i][1]
If $aArrayFiles[$i][0] = $aNameExt[$r] Then
FileSetPos($hFileCreateST, -$nAllSizeFiles, 2)
$bReadFile = FileRead($hFileCreateST, $aArrayFiles[$i][1])
$hOfileRes = FileOpen($sPathExt & '\' & $aArrayFiles[$i][0], 26)
FileWrite($hOfileRes, $bReadFile)
FileClose($hOfileRes)
ExitLoop
EndIf
Next
$nAllSizeFiles = 0
Next
FileClose($hFileCreateST)
EndFunc ;==>_ExtractFiles
в коде в общей сложности 5000 строк. В код включены все нужные функции из установочных udf. Так как он должен компилироваться на компе пользователя без установленного autoit.
все работает ок.
добавляю _Timer_SetTimer
эта функция регистрирует _GDIPlus_StripProgressbar, пользовательская функция с официального форума.
При работе кода вылетает ошибка, что в строке $nAllSizeFiles += $aArrayFiles[$i][1] используется необъявленная переменная. Но она объявлена как локальная.
Потом хаотично стала появляться ошибка, что переменная не объявлена, и в других строках кода. При этом, сам код начинает работать криво.
Хотя, я всегда использую опцию
Есть эта опция или нет, ошибка все равно появляется.
Убираю из кода _Timer_SetTimer. Ошибок нет, код после компиляции работает ровно так, как нужно
Такое впечатление, что интерпретатор сходит с ума))
до этого использовал строку вызова
Код:
GUIRegisterMsg($WM_TIMER, "PlayAnim")
DllCall("user32.dll", "int", "SetTimer", "hwnd", $WOTP, "int", 0, "int", 30, "int", 0)
Подобная ошибка не появлялась, однако у некоторых пользователей, у меньшинства, программа подвисала на этом моменте.
В общем, без _Timer_SetTimer и строк выше, все работает ок. Причем, у всех
Кто сталкивался с таким?