Использую DLL на c++ для распознования картинок вызов делаю так
в процессе использования идет постоянное увеличение используемой памяти причем не самим скриптом, а чем то что в диспечере задач даже не отображаеться, видимо это dll
по коду я его загружаю и выгружаю, почему же память не освобождается ?
в самом коде длл так же память чиститься
может в autoit коде что то забыл добавить чтобы память освобождать ?
пробовал один раз загрузить длл
и потом просто к ней обращаться (то есть без вызова DllClose) ничего не меняется память уменьшается точно так же.
Код:
$DLLHandle = DllOpen("img.dll")
$InitValue = DllCall($DLLHandle, "UINT64:cdecl", "Init")
Sleep(1000)
Local $result2 = DllCall($DLLHandle, "PTR:cdecl", "HWNDToPBitmap", "HWND", $hwnd, "int", $count_svetov)
If IsPtr($result2[0]) Then
DllCall($DLLHandle, "PTR:cdecl", "PBitmapToFile", "PTR", $result2[0], "Wstr", $papka_for_screen )
EndIf
DllCall($DLLHandle, "int:cdecl", "DeletePBitmap", "PTR", $result2[0])
DllCall($DLLHandle, "void:cdecl", "Shutdown", "UINT64:cdecl", $InitValue[0]);
DllClose($DLLHandle)
в процессе использования идет постоянное увеличение используемой памяти причем не самим скриптом, а чем то что в диспечере задач даже не отображаеться, видимо это dll
по коду я его загружаю и выгружаю, почему же память не освобождается ?
в самом коде длл так же память чиститься
может в autoit коде что то забыл добавить чтобы память освобождать ?
пробовал один раз загрузить длл
Код:
$DLLHandle = DllOpen("img.dll")
и потом просто к ней обращаться (то есть без вызова DllClose) ничего не меняется память уменьшается точно так же.