Форум: "WinAPI";
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];
ВнизКак работать с этим проклятым PChar? Найти похожие ветки
← →
Cobalt (2001-12-04 20:42) [7]Я использую эти функции в потоке.
Т.е., получаю несколько имён файлов, и для каждого запускаю свой поток.
type
EnumFile = class(TThread)
private
{ Private declarations }
FFName:TFileName;
protected
procedure Execute; override;
procedure AddToTree;
public
ResTypes:array of MyRes;
Hmod:HMODULE;
ResCnt,TekRes:integer;
Constructor Create(FFileName:TFileName);
end;
А в своих функциях использую поляResCnt
и
TekRes
.
И всё компилируется без к-либо сообщений об ошибках.
Function MyEnumNameFunc(HNDL:hModule; lpszType:LPSTR; lpszName:LPTSTR; lParam:LONGINT):BOOL;
begin
with EnumFile(lParam)do
begin
inc(NamesCnt);
{!!!Функция не является методом класса потока
Однако использует его поля}
SetLength(ResTypes[TekRes].RNames, NamesCnt);
ResTypes[TekRes].RNames[NamesCnt-1]:=lpszName;
end;
inc(NamesCnt);
result:=true;
end;
Почему? Хоть функции и вызываются из потока, но они-то понятия не имеют о потоке, и о его полях.
А, может быть, поля потока доступны для всех функций модуля, в котором он описывался?
Тогда как быть, если в модуле описывается несколько потоков(классов)?
Насклолько я понимаю, данные и код модуля, в ко-м описан поток, являются данными и кодом потока. Или как?!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c