부디 답변 해주시길 부탁드립니다. ㅠ.ㅠ
보통 메모리 맵 사용시 레코드를 사용하여 메모리 맵에 쓰고 읽고를 하는데요.
레코드 2개를 메모리 맵에 기록했을 경우,
읽는 부분에서 레코드별로 읽을 방법이 있을까요??
예를 들어 다음과 같은 레코드를 메모리 맵에 적었을 경우,
TVersionInfo = record
szVersion : array[0..5] of Char;
...
end;
pVersionInfo = ^TVersionInfo ;
메모리 맵에서 읽는 부분에서는
var
stTemp : String;
pVersion : pVersionInfo ;
begin
pVersion := MapViewOfFile(FMMF, FILE_MAP_READ, 0, 0, 0);
stTemp := pVersion .szVersion ;
end;
이렇게 하여 레코드를 바로 읽으면 되는데요..
다음과 같이 레코드 2개를 기록했을 경우는
TVersionInfo = record
...
...
end;
TInitInfo = record
...
...
end;
읽는 부분에서는 레코드 한개일때와 동일하게 읽어서는 안될거 같은데요.. 어떻게 처리를 해야 하나요?
그냥 이런식으로
var
p_Data : pChar;
begin
p_Data := MapViewOfFile(iHandle, FILE_MAP_READ, 0, 0, 0);
이렇게 해서 p_Data에는 메모리맵 전체를 리턴받아, 거기서 기록된 순서대로 파싱을 하여 읽어야 하는건가요?
제발 도움 부탁드립니다. ㅠ.ㅠ
pVersionInfo := MapViewOfFile(FMMF, FILE_MAP_READ, 0, 0, SizeOf(pVersionInfo^));
pInitInfo := MapViewOfFile(FMMF, FILE_MAP_READ, 0, SizeOf(pVersionInfo^), SizeOf(pInitInfo^));