Что нового

Удаленные сеансы пользователей

Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Есть небольшая проблем -ка, при длительной работы программы она завершает свой -же сеанс(Программа работала более 24часа.)...
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Поднимаю тему, при длительном использовании в цикле функцию:
Код:
Func _GAPI_GetServerSession()
	Local $GAPI_WTS_SESSION_INFO = 'dword SessionId;ptr WinStationName;uint State'
	Local $Offset = 0,$tInfo, $Temp, $Bufer, $DLL
	Local $Ret = DllCall('wtsapi32.dll', 'int', 'WTSEnumerateSessionsW', 'ptr', 0, 'dword', 0, 'dword', 1, 'ptr*', 0, 'dword*', 0)
    if @error Then Return -1
	Local $Return[$Ret[5]+1][5]
	$Return[0][0] = $Ret[5]
	For $i = 1 To $Ret[5]
        $tInfo = DllStructCreate($GAPI_WTS_SESSION_INFO, $Ret[4] + $Offset)
		$Bufer = ''
        $Offset += DllStructGetSize($tInfo)
		$Return[$i][0] = DllStructGetData($tInfo, 'SessionId')
        $Return[$i][1] = DllStructGetData(DllStructCreate('wchar[1024]', DllStructGetData($tInfo, 'WinStationName')), 1)
        $Return[$i][2] = DllStructGetData($tInfo, 'State')
		$Dll = DllCall("Wtsapi32.dll", "Bool","WTSQuerySessionInformation","Dword",0 ,"Dword",$Return[$i][0],"Dword",5, "str*", $Bufer, "Dword*",1024)
		$Return[$i][3] = $Dll[4]
		$Dll = DllCall("Wtsapi32.dll", "Bool","WTSQuerySessionInformation","Dword",0 ,"Dword",$Return[$i][0],"Dword",10, "str*", $Bufer, "Dword*",1024)
		$Return[$i][4] = $Dll[4]
	Next
    DllCall('wtsapi32.dll', 'none', 'WTSFreeMemory', 'ptr', $Ret[4])
	Return $Return
EndFunc


Обнаружил утечку памяти... За 2-3 часа занимаемая память возрастает вдвое...


Добавлено:
Сообщение автоматически объединено:

я использую http://msdn.microsoft.com/ru-RU/library/windows/desktop/aa383838(v=vs.85).aspx эту функцию, там сказано что-то про очистку памяти... как ее произвести?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Ganibal95
в справке по
Код:
DllStructCreate

написано
Чтобы освободить выделенную память просто установите возвращённую переменную в 0.
это не подойдет?
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
По пробую.
Сейчас врублю, вечером посмотрю...
 
Верх