2011-03-29 3 views
1

필자는 사람들이 내 응용 프로그램을 테스트했고 32 비트 사용자 모두가 작동하지 않는다고 말하고 있습니다. 나는 이런 종류의 오류에 매우 익숙하기 때문에 여기에 도움을 청했다. 나는 응용 프로그램 충돌의 문제 서명을 복사하도록 요청하고 여기있다 :내 vb.net 응용 프로그램은 64 비트 PC에서만 작동

문제 서명 : 문제 이벤트 이름 :

CLR20r3 문제 서명 02 : 1.0.0.0

문제 서명 03 : 4d9235a5 문제

서명 05 : 1.0.0.0 문제

서명 06 : 4d9235a5 문제

01,235,

서명 07 : 33 문제 서명 08 :

22 문제 서명 09 :

System.InvalidOperationException의 OS

버전 : 4122 추가 :

ID 6.1.7600.2.0.0.256.1 로캘 정보 1 :

0a9e 추가 정보 2 :

0a9e372d3b4ad19135b953a78882e789

추가 정보 3 : 0a9e

추가 정보 4 : 0a9e372d3b4ad19135b953a78882e789

+0

오류를 기반으로 실제로 대상으로하는 .NET Framework의 버전을 먼저 확인하게됩니다. 그런 다음 사용중인 운영 체제를 확인하십시오. 특정 플랫폼에서 지원되지 않는 .NET API를 호출하려고 할 가능성이 있습니다. .NET 응용 프로그램은 모든 아키텍처에서 올바르게 빌드되고 실행되어야합니다. Config Mgr에서 x64를 활성 솔루션 플랫폼으로 지정하지 않은 경우 –

+0

코드에서 문제가되는 user32.dll이 될 수 있습니까? – Ugleh

+0

하지 않아야합니다. 이것이 32 비트 시스템 용 올바른 lib입니다. 나는 그것이 다른 방향으로 실패 할 것이라고 기대할 것이다. –

답변

2
  1. Visual Studio에서, 당신의 프로젝트 속성으로 이동합니다.
  2. 컴파일 섹션을 클릭하십시오.
  3. 하단의 고급 컴파일 옵션 버튼을 클릭하십시오.
  4. 대상 CPU 드롭 다운에 '모든 CPU'가 선택되어 있는지 확인하십시오.
  5. 프로젝트/솔루션 빌드/리빌드.
+0

Im 대상 CPU 옵션을 가져 오지 못했습니다. http://thisfile.me/Ugleh/ss/m4csyd.png – Ugleh

+0

Express Visual Studio 에디션을 사용하는 것 같습니다. [Cody Gray] (http : // stackoverflow.)에 의해 응답 된 [여기] (http://stackoverflow.com/questions/4104228/change-target-cpu-settings-in-visual-studio-2010-express)를 시도해보십시오. co.kr/사용자/366904/cody-grey). –

+0

Ive 실제로 그것을 봤 거든 나는 진보 된 조정 및 exc를 놓아야했다. 그리고 이것이 내게 가장 가까운 대답이기 때문에 나는 전에 이런 일이 없었기 때문에 미쳤다. 또한 나는 Cody Gray의 의견이 내가 사용했던 것에 대해 정확하다는 것을 알아야한다. – Ugleh

3

나는이 답변을 적어도 일주일에 한 번 게시한다고 생각합니다. 여기에 우리가 다시 간다 : 이것을 추측하지 마라. AppDomain.CurrentDomain.UnhandledException 이벤트에 대한 이벤트 처리기를 작성합니다. e.ExceptionObject.ToString()의 값을 기록하거나 표시하십시오. 왜 코드가 그 정보에서 왜 그리고 어디서 폭탄을 터뜨리는 지 알아내는 데 아무런 문제가 없습니다.

GetAsyncKeyState()에 대한 선언이 잘못되어 Short가 아니라 Keys를 반환합니다. 하지만 예외는 설명하지 않습니다. 코드가 32 비트 모드에서도 실행되도록 할 수 있습니다. 프로젝트 + 속성, 컴파일 탭, 아래로 스크롤, 고급 컴파일 옵션. 대상 CPU를 "x86"으로 변경하십시오.

관련 문제