자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Q,

다음과 같은 코드가 32비트에서는 정상적인 핸들이 64비트에서는 0이 반환됩니다.

const
  SharedMemoryHandle = $FFFFFFFF;

 

  SharedMemory := CreateFileMapping(
                              SharedMemoryHandle,
                              nil,
                              PAGE_READWRITE,
                              0,
                              sizeof(TTouchInterfaceItems),
                              PChar(ATOUCH_INTERFACE)
                  );

 

A,

윈도우 API 호출 후 문제가 있을 경우 GetLastError를 호출해 오류의 종류를 확인할 수 있습니다.

제가 GetLastError로 확인 결과(https://msdn.microsoft.com/en-us/library/windows/desktop/ms679360(v=vs.85).aspx) 유효하지 않은 핸들(ERROR_INVALID_HANDLE: 6)이 반환됩니다.

 

다음 링크를 보면 아래와 같이 32비트와 64비트의 INVALID_HANDLE_VALUE값의 차이를 확인할 수 있습니다.

http://www.viva64.com/en/b/0022/

As a result, INVALID_HANDLE_VALUE does coincide with 0xFFFFFFFF value in a 32-bit system. But in a 64-bit system 0×00000000FFFFFFFF value

 

64비트에서는 위 코드를 아래와 같이 변경해서 사용하시기 바랍니다.

  SharedMemory := CreateFileMapping(
                              INVALID_HANDLE_VALUE,
                              nil,
                              PAGE_READWRITE,
                              0,
                              sizeof(TTouchInterfaceItems),
                              PChar(ATOUCH_INTERFACE)
                  );

 

참고로,

위 구문은 메모리 맵파일을 사용하는 일부 코드이며 실행파일과 라이브러리(dll)이 동일한 주소공간의 메모리를 공유할 수 있습니다. 자세한 내용은 아래 링크를 참고해 학습하시기 바랍니다.

MSDN : https://msdn.microsoft.com/en-us/library/windows/desktop/aa366537(v=vs.85).aspx

메모리 맵파일 소개 : http://sweeper.egloos.com/2990023

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 17252
공지 유용한 관련 사이트 관리자2 2014.03.20 56152
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99576
1519 jedi jcl 설치 오류 [1] file 미스터몽키 2015.06.03 421
1518 시애틀 IDE 멀티라인 주석처리 문의 [1] 회원 2015.09.16 421
1517 TStringList 관련해서 [1] 한시민 2016.04.12 421
1516 upnp 관련 질문입니다.-(질문 수정-화면캡쳐 포함) [2] file 쿠핑 2016.09.29 422
1515 폼에서 에디터체 포커스가 갔을때 왜 가상키보드가 안먹을까? [2] file 화이부동 2017.01.03 423
1514 델파이10.2에서 10.3.1로 업했는데 기존문제없던 쿼리관련해서 에러가 납니다. [4] 왕초보 2019.06.03 423
1513 안드로이드 앱개발시..object관련에러.. [2] 흠흠흠 2015.04.28 423
1512 FastReport관련 질문있습니다. [2] file 루키 2020.07.08 423
1511 디버그 오류 [1] 개미 2018.06.22 424
1510 F2046 Out Of Memory - Can't compile one project in XE5 [3] 닐슨코리아 2016.11.21 425
1509 [공유] 델파이 소스코드로 델파이 버전을 알수 있나요? 험프리 2020.03.03 425
1508 FireDAC Unicode 문제? [2] file 홍홍홍 2016.05.24 426
1507 컴파일시 오류 [1] 엠카바데로 2016.04.19 427
1506 C++ Builder에서 Prism과 MVVM 패턴을 지원하나요? [1] 손보라 2016.05.31 427
1505 Rad Studio Xe7 개발된 프로젝트 Delphi Xe7 에서 사용할때 문제점 [1] file 희망나라 2015.04.01 427
1504 xe8 기기연결 이 안되는데...ㅜ; [2] 아놀드 2015.04.09 427
1503 레이아웃 구성할 때, VCL에서 Panel을 사용하고, fmx에서는 Layout을 사용하는데 차이가 뭔가요?? [1] zenojm 2017.11.24 428
1502 롤리팝에서 프로그램이 구동되지 않습니다 [4] 위드유 2015.12.02 428
1501 개발시 uses 절 관련 [1] 씨애틀 2016.03.08 428
1500 델파이10.3.3 API29, 안드로이드 10 변경 문의드립니다. [3] 쟝히 2020.11.23 428