저는 Windows XP Visual Studio 2008에서 개발 해왔습니다. 32 비트 모드로 C++ 응용 프로그램을 개발하고있는 것 같습니다. 내 새 Windows 7 64 비트 상자에서 프로그램을 실행하면 반입 방법을 통해 액세스 위반 오류가 발생합니다. 따라서 모든 개발 도구를로드하고 Windows 7에서 프로젝트를 다시 컴파일하여 충돌 사이트를 찾았지만 완벽하게 작동합니다! 뭐? 내 앱을 x64에서 작동하게하려면 어떻게해야합니까? 두 개의 별도 버전을 출시해야합니까? 64 비트를 대상으로 할 수 있지만 두 개의 별도 실행 파일이 마음에 들지 않습니다. 검색했지만 계속 두 가지 버전의 솔루션 또는 모든 .net. 이것은 네이티브 C++입니다. x86 플래그가 어딘가에 있습니까?XP 32에서 Visual Studio로 만든 응용 프로그램이 액세스 위반시 64 번 충돌합니다. 버그를 찾으려면 64 비트 환경에서 다시 컴파일, 잘 작동합니다. 뭐?
0
A
답변
3
"두 개의 별도 버전을 출시해야합니까?" 앱에 따라 다릅니다. 대부분의 32 비트 앱은 WoW 모드에서 정상적으로 작동합니다.
"어딘가에 x86 플래그가 있습니까?" . 구성 관리자 (Alt-B, O)를 열면 플랫폼 선택에서 win32가 표시됩니다.
왜 앱이 충돌하는지 디버깅하는 것입니다. 디버거를 64 비트 OS의 32 비트 버전에 연결할 수 있어야합니다.
1
0
다른 응답에서 이미 말했듯이 응용 프로그램에는 한 환경에서 숨겨진 버그가있을 가능성이 큽니다. 학습 곡선의 측면에서 입력 비용이 저렴한 좋은 도구는 Microsoft의 application verifier입니다. debugging tools과 함께하면 아주 좋은 시작을 제공 할 수 있습니다. gflags 유틸리티를 살펴보십시오.
Windows에서 Valgrind는 작동하지 않습니다. –