2010-01-20 5 views
3

Visual C++를 사용하여 Windows 응용 프로그램을 빌드했습니다. 그것의 빌드 및 32 비트 windows에서 실행 env. 이제 Windows Vista/7 64 비트 env에서 작동하는지 확인해야합니다. 이 포팅 과정에서 고려해야 할 모든 것32 비트에서 64 비트로 이식하는 경우

+2

을 포팅하는 동안이 있습니까 64 비트 포트 그것에 오류 및 경고에 대한 자세한 내용은 아래 링크를 참조하거나 당신이 64 비트 OS에서 작동하는지 확인해야합니까? –

+0

@ Nikola, 정확하게 64 비트 OS에서 작동하는지 확인해야합니다. – Unicorn

답변

7

64 32 비트에서 포팅 아니에요, 그건 그냥 확인 여전히 작동하는지 확인하기 위해 64 비트 시스템에서 32 비트 코드를 실행합니다.

새로운 버전을 출시 할 때마다 그러 하듯이 64 비트 시스템의 모든 기능을 테스트하는 것입니다. :-)

실제로 이식하려면 (64 비트 실행 파일로 컴파일) 먼저 시도해보십시오. 당신은 그것이있는 그대로 발견 할 수 있습니다. 난 당신이 그것을 시도하고 문제가 나타나는 경우에만 포팅 문제에 대해 걱정할 것입니다.

그런 다음에만 원인을 찾아 보겠습니다. 그렇지 않으면 잠재적으로 낭비되는 노력입니다.

+0

너무 사실입니다. 유일한 중요한 이식 문제는 포인터가 4 바이트이고 메모리 매핑 파일을로드한다고 가정하는 것입니다. 다른 모든 것은 "그냥 작동합니다". – Goz

0

일반 오래된 데이터 (POD)를 파일에 저장하거나 IPC 또는 소켓 등을 통해 다른 응용 프로그램에 POD 데이터를 전달하는 경우주의해야합니다. 또한 4 바이트 길이를 가정하고 가정 한 코드도있었습니다. 4 바이트 포인터. 말할 필요도없이 우리는 이러한 시대 착오를 제거했습니다.

컴파일러는 보통 다른 종류의 오류 즉, int to long conversion 등을 찾아내는 데 좋습니다. 일반적으로 컴파일러 경고를주의 깊게 살펴보고 이에 따라 코드를 변경하는 경우가 많습니다.

1

x64 모드에서 프로젝트를 빌드하기 전에.

  1. 은 다음과 같습니다 필요한 모든 64 비트 DLL의 프로젝트에
  2. 는 링커에서 라이브러리 파일을 포함해야 - 추가 종속성 - 구성 속성을.
  3. C/C++에서 필요한 전 처리기 - 전 처리기 - 구성 등록 정보를 추가하십시오.
  4. 는 64 비트 경고를 활성화 - 컴파일러를 컴파일 할 때 경고

예를 보여줍니다 int에서 size_t에 데이터 타입의

  1. 변환이 수있는 데이터
  2. 저장 포인터 주소의 손실
  3. 매직 아니.

http://www.viva64.com/en/a/0065/

관련 문제