Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

Как использовать указатели в классах ?   Найти похожие ветки 

 
AllDer   (2003-09-13 02:01) [0]

Здраствуйте эксперты.!Проблема:
function Messager:dword;stdcall;
begin
//....code
end;

var
kId:dword;//cardinal!!!Source\Rtl\Win\windows.pas
// есть определение DWORD = LongWord;

begin { main }
//..create memory kID
createthread(nil,0,@Messager,0,0,@kID);
//....
end;
Это Работает!-запуск thread

Суем в класс-не работает
TTest = class
procedure ShowInfo;
function Mes:dword;stdcall;
end;

function TTest.Mes:dword;stdcall;
begin
//----code
end;

procedure TTest.CreateMessage;
begin
createthread(nil,0,@Mes,0,0,@kID);//<--здесь ошибка некомпилит
end;

D4 некомпилит-"Combining signed and unsigned types -
widened both operands/Variable required"

Неработает ссылка на память @Mes(type pointer) и между классами
типа:
procedure TTest.Ini;
Var
pArr:^dword;
begin
pArr:=@Cl.Array;
{var Cl:TTest2;где
TTest2 = class
Array:pointer;}

end;
Как использовать указатели в классах на функции
(своего! и чужого класса) и переменные!?


 
zaporshivets   (2003-09-15 09:52) [1]

Нужно разделять понятия метод класса и функцию. Функция в памяти имеет один физический адрес, а метод два адреса. Один - адрес экземпляра класса, а другой непосредственно адрес функции. Поэтому присвоить метод класса указателю на обычную функцию нельзя.



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

Текущий архив: 2003.09.25;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.02 c
14-82421
Vlad Oshin
2003-09-05 16:19
2003.09.25
Туплю что-то...Про сеть. Надо настроить....


1-82202
Dark Elf
2003-09-12 16:04
2003.09.25
Параметры приложения


1-82185
Дмитрий
2003-09-15 16:53
2003.09.25
Надстрочные и подстрочные сиволы


6-82374
test
2003-07-24 15:53
2003.09.25
Как переслать по TCP TStringList (пример пожалуйста)


7-82523
Borgir
2003-07-11 14:30
2003.09.25
Температура CPU