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

Вниз

работа с указателями - что же не так?   Найти похожие ветки 

 
StarCon   (2003-03-20 11:49) [0]

есть 2 рекорда и процедура, которая дает ошибку при компиляции (Invompatible types):
type
TGenTranPoint = ^TGenTran;
TGenTran = packed record
tranid: array[0..3] of char;
end;
type
TGenReplyPoint = ^TGenReply;
TGenReply = packed record
tranid: array[0..3] of char;
end;
procedure tran_process(data: pointer);
var GenTran: TGenTranPoint;
GenReply: TGenReplyPoint;
begin
GenTran := data;
GenReply.tranid := GenTran.tranid;
end;


 
Clickmaker ©   (2003-03-20 11:54) [1]

procedure tran_process(data: pointer);
var GenTran: TGenTranPoint;
GenReply: TGenReplyPoint;
begin
GenTran := TGenTranPoint(data);
GenReply.tranid := GenTran.tranid;
end;


 
StarCon   (2003-03-20 12:07) [2]

не помогло
ошибка на строку
GenReply.tranid := GenTran.tranid;
причем если в рекордах есть переменные типа longint - они переприсваиваются без проблем


 
REA ©   (2003-03-20 12:13) [3]

Объяви эквивалентный тип TCharArray03


 
Smithson ©   (2003-03-20 12:13) [4]

Массивы просто так не присвоишь. Либо цикл, либо move. И еще - называй тип указателя на тип с P. То есть не TGenTranPoint, а
PGenTran. Окружающим будет понятнее.


 
StarCon   (2003-03-20 12:24) [5]

спасибо - move - это то что надо!


 
theodor_iv ©   (2003-03-20 13:14) [6]


> StarCon (20.03.03 12:24)
> спасибо - move - это то что надо!

REA прав -- нужно просто создать еще один тип. Вот так:

type
TTranID = array[0..3] of char;

PGenTran = ^TGenTran;
TGenTran = packed record
tranid: TTranID;
end;

PGenReply = ^TGenReply;
TGenReply = packed record
tranid: TTranID;
end;

Тогда массивы можно будет присваивать напрямую. И никакого Move, и уж тем более циклов!



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
4-100523
DVM
2003-01-27 09:27
2003.03.31
Хук WH_SHELL и окна консольных приложений / DOS программ


14-100425
Grab
2003-03-14 11:13
2003.03.31
Как положить фоновый рисунок в listbox?


6-100366
Dimich1978
2003-02-07 15:01
2003.03.31
У Клиента в сокете остается инфа?


9-100132
Док
2002-11-01 10:59
2003.03.31
Сквозь заградительный огонь..............


8-100333
Yury
2002-12-26 11:29
2003.03.31
Video files