Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.26;
Скачать: [xml.tar.bz2];

Вниз

Такой вот вопрос   Найти похожие ветки 

 
Nick-From   (2002-11-09 21:38) [0]

Есть тело потока:

function Execute (param: TMyPtr):Dword;
var
r: integer;
begin
r := param^;
if r > 0 then Result := 1
else Result :=0;
end;

,где TMyPtr = ^integer;

и есть процедура, вызывающая поток:

procedure TForm1.Button1Click(Sender: TObject);
var
SubThread, SubThreadID: THandle;
param: ^integer;
begin
Getmem(param, 4);
param^ := StrToInt(Edit1.text);


SubThread := CreateThread ( nil,
0,
@Execute,
param,
CREATE_SUSPENDED,
SubThreadID
);
ResumeThread(SubThread);
end;

в процессе выполнения которой возникает ACCESS VIOLATION на строке r := param^;

Вроде ведь параметры передаю правильно.
В чем проблема, может кто знает?


 
Ihor Osov'yak   (2002-11-09 22:28) [1]

function Execute (param: TMyPtr):Dword; stdcall;


Еще две некритические ошибки: нет освобождения памяти и не проверки на успешность getmem;



 
Nick-From   (2002-11-10 01:27) [2]

Спасибо, заработало :)

А как взять возвращаемый параметр:
IntNumber := ResumeThread(SubThread); ???


 
BSD   (2002-11-11 14:36) [3]

После создания и запуска :
IntNumber:=WaitForSingleObject(SubThread,INFINITE);


 
paul_shmakov   (2002-11-12 13:34) [4]

2 BSD:
нет, не так.

SubThread := CreateThread(...);
// ResumeThread(SubThread) если использовался флаг CREATE_SUSPENDED
WaitForSingleObject(SubThread, INFINITE);
GetExitCodeThread(SubThread, @IntNumber);
CloseHandle(SubThread);



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.03 c
14-86086
AL2002
2002-11-29 18:26
2002.12.26
Скажите, хоть кто-то


3-85802
nikolo
2002-12-05 16:44
2002.12.26
Хранимые процедуры MS SQL


1-85935
delpher_gray
2002-12-08 15:04
2002.12.26
Почему неполучается получить кэш. пароли из конс-го приложения ?


3-85850
atmamont
2002-12-07 16:35
2002.12.26
лучший способ заполнения primary key в парадоксе


1-85911
Alek Aaz
2002-12-17 08:13
2002.12.26
Скажите точно, скока вешать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский