2009-08-25 2 views
1

매우 낯설지 만 VS2005 (MFC, VC++)로 옮겼습니다. 이제는 재 컴파일 된 프로그램이 XP SP2에서 BSOD 또는 재부팅을합니다. SP3 이상에서 정상적으로 작동합니다.). InitInstance에 도달하지 않습니다.VS2008의 코드를 다시 컴파일하고 XP SP2를 재부팅합니다.

누구든지이 경험이 있고 그것을 고칠 곳을 알고 있습니까? 나는 현재 프로젝트 설정에 대해 고심하고 있지만 지금까지는 성공적이지 못했다.

디버그 및 릴리스는 동일한 방식으로 작동합니다 (재부팅).

미리 감사드립니다.

추가 : 실제로는 CWinApp 생성자를 통과하지만, InitInstance에 도달하기 전에 중간에서 어딘가에서 종료됩니다.

답변

0

아마도 하드웨어 문제가 있거나 드라이버 문제가 발생했을 수 있습니다. 메모리가 제대로 장착되었는지 확인하고 팬이 있는지 확인하십시오. CPU가 과열되었을 수 있습니다. 일반적으로 사용자 모드 프로그램이 BSOD를 유발할 가능성은 없습니다.

+0

실제로 테스트 환경에서 BSOD가 발생하지 않고 재부팅이 발생했습니다 (적어도 한 명의 사용자가 BSOD를보고했습니다). 나는 2 가지 다른 머신 (하나의 가상 머신, 하나의 실제 머신)에서 테스트 했으므로 하드웨어가 아닙니다. – dennisV

1

InitInstance 전에 발생하는 경우 해당 충돌이 발생하는지 보려면 중단 점을 CWinApp 생성자에 넣을 수 있습니다. 그렇지 않다면 dll 로딩 문제 일 수 있습니다.

dll 파일 중 하나가 vs2005로 컴파일 된 다음 vs2008로 링크되었을 수 있습니까?

또는 매니페스트 파일을 직접 편집하여 잘못된 sxs dll을로드 했습니까?

+0

메시지 상자를 생성자에 넣었지만 모든 메시지 상자를 통과하지만 InitInstance의 첫 번째 줄에있는 메시지 상자를 표시하지 않습니다. 내 다음 단계는 원격 디버깅을 설정하여 아무것도 표시되는지 확인하는 것입니다. 저는 많은 DLL을 가지고 있지 않습니다. 아마 제가 링크하는 제 3의 타사 제품들도 있습니다.하지만 나중에 확인할 가치가 있습니다. 매니페스트 파일에 대해 확실하지 않습니다 - sxs dll이 무엇인지 모르겠습니다. – dennisV

0

매니 페스트와 연결되어있는 것으로 보입니다. 매니 페스트 생성을 비활성화하고 수동으로 생성 한 것을 제공 한 후 다시 작업을 시작했습니다.

+0

나는 당신을 도울 수있어서 기뻐요. – chollida

+0

네,하지만 그것은 실제로 내가 생성 한 것에 비해 자신을 생성 한 매니 페스트를 선호하는 것처럼 보입니다. 이상한 - 당신은 그것이 무엇을하는지 알고 있기를 바랄 것입니다. – dennisV

+0

vs2005에서 작성된 매니페스트를 vs2008을 사용하는 시스템 (예 : 소스 제어하에 있음)으로 복사했을 수 있습니까? 그것은 확실히 문제를 일으킬 것입니다. – chollida

관련 문제