running-frag
why me?
- Сообщения
- 441
- Репутация
- 60
есть код, недавно нашёл, сижу разбираюсь и не могу понять что присвоится переменной $hThumb\$hThumbEx если будет ошибка
код
а вот где может выпрыгнуть SetError ()
Отсюда возникли вопросы.
1. Что будет в переменных если функция отдаст ошибку?
2. Как переписать код без функции. Т.е. нужно в первых код вписать второй без каких либо функций. С учётом того что проверка на ошибку сохранится.
код
Код:
Local $hBitmap
Local $hImage
Local $hThumb
Local $hThumbEx
_ScreenCapture_SetJPGQuality (100)
$hBitmap = _ScreenCapture_CaptureWnd ("", $_winHandle, $_xE, $_yE, $_wE, $_hE, False)
_GDIPlus_Startup ()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP ($hBitmap)
_WinAPI_DeleteObject ($hBitmap)
$hThumb = _resizeTempImage ($hImage, _GDIPlus_ImageGetWidth($hImage), _GDIPlus_ImageGetHeight($hImage))
$hThumbEx = _resizeTempImage ($hImage, _GDIPlus_ImageGetWidth($hImage) *$_expand, _GDIPlus_ImageGetHeight($hImage) *$_expand)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ImageSaveToFile($hThumb, @DesktopDir & '\temp.png')
_GDIPlus_ImageSaveToFile($hThumbEx, @DesktopDir & '\tempEx.png')
_GDIPlus_ImageDispose($hThumb)
_GDIPlus_ImageDispose($hThumbEx)
_GDIPlus_Shutdown()
а вот где может выпрыгнуть SetError ()
Код:
Func _resizeTempImage ($hImage, $iWidth, $iHeight)
Local $Ret = DllCall($ghGDIPDll, 'int', 'GdipGetImageThumbnail', 'ptr', $hImage, 'int', $iWidth, 'int', $iHeight, 'ptr*', 0, 'ptr', 0, 'ptr', 0)
If @error Or $Ret[0] Then Return SetError(1,0,0)
Return $Ret[4]
Отсюда возникли вопросы.
1. Что будет в переменных если функция отдаст ошибку?
2. Как переписать код без функции. Т.е. нужно в первых код вписать второй без каких либо функций. С учётом того что проверка на ошибку сохранится.