델마당에도 질문을 올렸는데 아무래도 64bit 프로그래밍해보신 분이 많지 않은 것 같네요.
경험있으신 분 의견 좀 부탁드립니다.
---------------------------------------------------------------------------
XE2 Professional 구입/설치 후 처음 확인해보는 것이 64bit를 지원하는가였습니다.
테스트 방법의 문제인지 뭔가 설정을 해야하는데 빠뜨린 것인지
2GB를 초과하는 메모리쓰기는 여전히 실패하는군요.
64bit 프로그래밍해보신 분 계신지요?
환경: Windows 7 64 bit, 8GB RAM, 16GB 페이지 파일
1. target platform을 Win64로 변경하고 Win32는 삭제..
2. 아래 코드 입력 후 실행하면 정상 동작합니다.
3. 이제 GBSIZE=3로 변경 후 재실행 -> 오류 발생
procedure TForm1.FormCreate(Sender: TObject);
const
GBSIZE =2;
var
pMem :PByte;
nSize :Int64;
i :integer;
begin
nSize :=1024*1024*1024{GB};
nSize :=nSize*GBSIZE;
pMem :=AllocMem(nSize);
for i := 0 to GBSIZE*1024*1024-1 do
TRY
FillChar(pMem[i*1024],1024,0);
EXCEPT
OutputDebugString(PWideChar(Format('%d',[i])));
END;
end;
|