Задался вопросом - какие-же ресурсы нужно обязательно освобождать во время работы и перед окончанием работы скрипта?
На мысль натолкнула эта тема.
В данном случае речь идет об удалении битмапа, который устанавливается функцией _SendMessage в контрол GUICtrlCreatePic.
С одной стороны msdn говорит, что пользователь сам должен освобождать ресурсы, с другой стороны нижеприведенный код показывает, что эти ресурсы освобождаются автоматически и нет никакой утечки памяти.
На мысль натолкнула эта тема.
В данном случае речь идет об удалении битмапа, который устанавливается функцией _SendMessage в контрол GUICtrlCreatePic.
С одной стороны msdn говорит, что пользователь сам должен освобождать ресурсы, с другой стороны нижеприведенный код показывает, что эти ресурсы освобождаются автоматически и нет никакой утечки памяти.
Код:
#Include <GDIPlus.au3>
If Not FileExists(@ScriptDir & '\test.jpg') Then
ConsoleWrite('! Не найден файл :' & @CRLF & @ScriptDir & '\test.jpg' & @CRLF)
Exit
EndIf
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\test.jpg')
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
GUICreate("Test")
GUISetState(@SW_SHOW)
While 1
If GUIGetMsg() = -3 Then Exit
$Pic = GUICtrlCreatePic("", 0, 0)
_SendMessage(GUICtrlGetHandle($Pic), 0x0172, 0, $hBitmap)
ConsoleWrite('- Inp Bitmap >' & $hBitmap & ' Out Bitmap >0x' & Hex(_SendMessage(GUICtrlGetHandle($Pic), 0x0173), 8) & @CRLF)
Sleep(100)
GUICtrlDelete($Pic)
WEnd