안녕하십니까?.
Pointer로 Record를 지적하여 아래와 같이 사용하고자 하는데 잘못된 연산이라는
Error가 발생합니다. 여러 고수님들의 조언 부탁드립니다.
Unit Appc;
type
TIHRec11 = record
name: array[0..299]of char; {!~300 Byte / ~300 Byte }
so1: byte;
nameh: array[0..7]of char;
si1: byte;
end;
var
P : Pointer;
cp : Pchar;
procedure appc.FormCreate(Sender: TObject);
begin
GetMem( P, 311 );
cp := P;
end;
procedure appc.FormDestroy(Sender: TObject);
begin
FreeMem( P, 311 );
end;
procedure appc.DataProcess;{데이타처리부분}
begin
P := cp; {cp에는 위의 TIHRec11와 같은 구조의 Data가 있슴 }
Lname.caption := TIHRec11(P^).name; <--- Error 발생
Lnameh.caption := TIHRec11(P^).nameh;
end;
..
위에서 Trace를 Lname.caption, Lnameh.caption 에 위치시켜보면
access invaild = OF34x000... ffffffff 라고 나타나면서 잘못된 연산
처리라는 error가 나타납니다.
어떻게 해야하나요. 많은가르침을 부탁드립니다.