HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.08.2009, 22:59
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Как при вызове потоков с помощью: CreateThread()
Очистить память по завершению потоков?
 
Ответить с цитированием

  #2  
Старый 23.08.2009, 23:07
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 НTL ты хоть сам понял что сказал?
 
Ответить с цитированием

  #3  
Старый 23.08.2009, 23:11
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Цитата:
Сообщение от slesh  
2 НTL ты хоть сам понял что сказал?
ммм...

В общем нужно по завершению потока удалить его...
 
Ответить с цитированием

  #4  
Старый 23.08.2009, 23:46
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

вконце функции потока ставь ExitThread(0) типа
Код:
DWORD _stdcall ThreadProc(void * p)
{
............
 ExitThread(0);
 return 0;
}
Или на Delphi
Код:
function ThreadProc(p:pointer):DWORD; stdcall;
begin

.............
 ExitThread(0);
 result := 0;
end;

Последний раз редактировалось slesh; 24.08.2009 в 00:07..
 
Ответить с цитированием

  #5  
Старый 24.08.2009, 00:04
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Цитата:
Сообщение от slesh  
вконце функции потока ставь ExitThread(0) типа
Код:
DWORD ThreadProc(void * p)
{
............
 ExitThread(0);
 return 0;
}
Или на Delphi
Код:
function ThreadProc(p:pointer):DWORD;
begin

.............
 ExitThread(0);
 result := 0;
end;
Все равно выдает ошибку, если снова пытаться создать потоки
 
Ответить с цитированием

  #6  
Старый 24.08.2009, 00:09
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Может ты не правильно создаеш? или недоконца доходит функция завершения.
когда создаеш поток то не забывай закрывать дискриптор
 
Ответить с цитированием

  #7  
Старый 24.08.2009, 00:37
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Цитата:
Сообщение от slesh  
Может ты не правильно создаеш? или недоконца доходит функция завершения.
когда создаеш поток то не забывай закрывать дискриптор
Вот:

Код:
procedure Getdata;
var
 len:integer;
 ret:string;
begin
form1.Memo2.Lines.Add(inttostr(random(111)));
ExitThread(0);
end;


procedure TForm1.Button8Click(Sender: TObject);
var
 thId:cardinal;
   i : Integer;
begin
For i := 1 to 100 do
begin
CreateThread(0,0,@Getdata,nil,0,thid);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 ws:TWSAData;
begin
 WsaStartup($202,ws);
 application.Title:='HTTP Sender';
end;
Это из HTTP Sender, но при попытки снова создать потоки получаем ошибку, я не думаю что здесь не доходит до: ExitThread(0);
 
Ответить с цитированием

  #8  
Старый 24.08.2009, 01:07
2pick
Познающий
Регистрация: 17.03.2007
Сообщений: 98
Провел на форуме:
193152

Репутация: 45
Отправить сообщение для 2pick с помощью ICQ
По умолчанию

Глюк при чтении файла... Текстовые файлы читает наура, а вот двоичные (картинки, архивы и т.п.) только первые 5-10 байт. Где косяк?
Код:
Function GetBuff(szFile: PChar): PChar;
Var
hFile, dwSize, dwBytes: DWORD;
Begin
Result:='';
hFile:=CreateFile(szFile, GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
If hFile<>INVALID_HANDLE_VALUE then
Begin
dwSize:=GetFileSize(hFile, nil);
Result:=VirtualAlloc(nil, dwSize, MEM_COMMIT, PAGE_READWRITE);
ReadFile(hFile, Result^, dwSize, dwBytes, nil);
End;
CloseHandle(hFile);
End;
 
Ответить с цитированием

  #9  
Старый 24.08.2009, 20:44
2pick
Познающий
Регистрация: 17.03.2007
Сообщений: 98
Провел на форуме:
193152

Репутация: 45
Отправить сообщение для 2pick с помощью ICQ
По умолчанию

Цитата:
Сообщение от 2pick  
Глюк при чтении файла... Текстовые файлы читает наура, а вот двоичные (картинки, архивы и т.п.) только первые 5-10 байт. Где косяк?
Код:
Function GetBuff(szFile: PChar): PChar;
Var
hFile, dwSize, dwBytes: DWORD;
Begin
Result:='';
hFile:=CreateFile(szFile, GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
If hFile<>INVALID_HANDLE_VALUE then
Begin
dwSize:=GetFileSize(hFile, nil);
Result:=VirtualAlloc(nil, dwSize, MEM_COMMIT, PAGE_READWRITE);
ReadFile(hFile, Result^, dwSize, dwBytes, nil);
End;
CloseHandle(hFile);
End;
Кто-то поможет все таки?
 
Ответить с цитированием

  #10  
Старый 25.08.2009, 17:22
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


Отправить сообщение для Nightmarе с помощью ICQ
По умолчанию

Цитата:
Сообщение от 2pick  
Сообщение от 2pick
Глюк при чтении файла... Текстовые файлы читает наура, а вот двоичные (картинки, архивы и т.п.) только первые 5-10 байт. Где косяк?
Код:

Function GetBuff(szFile: PChar): PChar;
Var
hFile, dwSize, dwBytes: DWORD;
Begin
Result:='';
hFile:=CreateFile(szFile, GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
If hFile<>INVALID_HANDLE_VALUE then
Begin
dwSize:=GetFileSize(hFile, nil);
Result:=VirtualAlloc(nil, dwSize, MEM_COMMIT, PAGE_READWRITE);
ReadFile(hFile, Result^, dwSize, dwBytes, nil);
End;
CloseHandle(hFile);
End;


Кто-то поможет все таки?

Присоеденяюсь. Тоже очень интересен ответ.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ