2008-10-04 3 views
3

x64 플랫폼에서 타사 라이브러리를 사용하는 응용 프로그램을 컴파일하려고합니다. 그러나 VS2008 Pro의 Build Configuration Manager에서 x64를 선택해도 작동하지 않는 것 같습니다. 이진 파일이 만들어 지지만 클라이언트가 x64에서 실행할 수 없습니다.VS2008 Pro를 실행하는 x86 플랫폼에서 x64 바이너리로 컴파일하려면 어떻게해야합니까?

제 3 자 DLL이 원인 일 수 있는지 궁금합니다. 누구든지 이것에 대해 어떤 생각을 가지고 있습니까?

+0

타사 라이브러리 x64입니까? –

답변

3

타사 라이브러리의 x64 버전이 있습니까? 그렇지 않으면 너는 운이 없어. 프로세스는 완전히 x86 또는 x64 여야하며 라이브러리를 혼합하고 일치시킬 수 없습니다. 라이브러리가 DLL이면 x64 빌드에서 내보내기 라이브러리가 필요합니다.

VS에서 x64 구성을 선택하면 작동하지 않습니다.

업데이트 : 응용 프로그램이 .NET 및 아키텍처 중립적 인 경우 64 비트 OS로 64 비트로로드됩니다. 그러나 32 비트 DLL을 사용하는 경우 런타임에 실패합니다. corflags 유틸리티를 사용하여 exe가 항상 32 비트를로드하도록 할 수 있습니다.

1

Rob Walker가 말했습니다. x64 시스템의 SysInternals에서 "depends"프로그램을 사용하면 더 많은 정보를 얻을 수 있습니다.

+0

종속 항목은 sysinternals가 아닙니다. Visual Studio와 함께 배포되었지만 http://www.dependencywalker.com/에서 찾을 수 있습니다. – crashmstr

0

"VS2008 Pro의 빌드 구성 관리자에서 x64를 선택해도 작동하지 않는 것 같습니다."
바이너리를 가져 오는 이유는 모르겠지만 x64 도구는 기본적으로 설치되지 않습니다. 돌아가서 VC2008 설치 프로그램을 다시 실행하고 사용자 지정 설치를 수행 한 다음 트리의 VC++ 비트 아래에서 64 비트 컴파일러의 확인란이 선택되어 있는지 확인하십시오. 그렇지 않은 경우이를 확인하고 설치를 실행하십시오. 그런 다음 빌드를 시도하십시오.

타사 DLL의 64 비트 버전이 필요하며 모든 포함 및 lib 경로와 출력 폴더를 바로 가져올 필요가 있지만 도구를 설치하는 것이 첫 번째 단계입니다.

0

내 응용 프로그램에는 설치 프로그램이 없습니다. 필자는 .NET2.0을 사전 요구 사항으로 "휴대용 응용 프로그램"으로 만들었습니다.

동일한 요청을 공급 업체에 게시했습니다. 그들이 x64 비트를 가지고 있다면 되돌리기를 여전히 기다리고 있습니다.

그동안 저는 x64 Vista 사본을 구입하여 개인적으로 테스트하고 있습니다. 나를 테스트 해보기 위해 사용자를 희생시킬 수는 없습니다. 새로운 업데이트가 있으면이 스레드를 게시 할 것입니다.

감사합니다.

+0

응용 프로그램이 .net이면 업데이트 된 답변 –

1

문제의 원인을 찾아 내기 위해 관리합니다. 바이너리를 x64 환경에서 실행하지 못하게하는 소스 코드 난독 화 도구 (Intellilock 1.1.0.4)에서 설정 (IL 코드 암호화) 중 하나였습니다.

이 설정을 사용하지 않으면 문제가 해결됩니다.

+0

을 참조하십시오. 사용자 자신의 대답을 수락해야합니다. –

관련 문제