2011-11-22 2 views
5

내 프로그램은 Windows XP에서 잘 작동합니다. 더 많은 기능을 추가하고 OutputDebugString()을 사용하여 일부 디버그 정보를 표시하려고합니다. XP에서 완벽하게 작동합니다. 이제 Windows 7x64에서 같은 프로그램을 사용하고 싶습니다. 나는 어떤 출력도 DebugView에서 보지 못한다.OutputDebugString()이 Windows 7x64에서 작동하지 않습니다.

F1!F1!F1!

+0

'OutputDebugString'은 7 x64에서 잘 작동합니다. DebugView는 또한 applciations의 출력을 보여줍니다. –

답변

11

죄송합니다. 이전 질문을 되살려 주셔서 감사합니다. 그러나 인터넷 검색을 통해 며칠을 보내고 결국 인터넷에 연결하여 전화를 걸었습니다. 같은 상황에서 다른 사람을 돕기 위해 여기에 올리고 있습니다. 우리의 특정 문제는 x64, 혼합 모드 응용 프로그램을 디버깅 할 때 디버그 출력 창에서 OutputDebugString, MFC TRACE 등의 출력을 얻는 것입니다.

Microsoft에 따르면 분명히 x64 혼합 모드 응용 프로그램을 디버깅하는 경우 디버거 유형 '자동'(디버깅 -> 디버거 유형 속성 페이지에서 설정)은 기본적으로 혼합되지 않고 관리 됨으로 설정됩니다. 64 비트 빌드를 디버깅 할 때 관리되는 디버그 출력과 네이티브 디버그 출력을 모두 명시 적으로 '혼합'으로 설정해야합니다.

+1

내 경우에는 IE 확장에서 출력 디버그 문자열을 호출하고있었습니다. IE는 일반적으로 이러한 통신을 허용하지 않습니다. 그래서 나는 관리자로서 Internet Explorer를 실행하고 DebugView를 관리자로 실행했습니다. – vrrathod

+0

제 경우에는 OutputDebugStringW를 호출했습니다. OutputDebugStringA로 변경하면 올바르게 작동합니다. –

3

3 작은 제안 :

  1. 수 있도록 당신이 실제로 이벤트를 캡처해야합니다 (상단 메뉴 -> 캡처 -> 캡쳐는 Win32가 표시됩니다) 당신이 프로그램에서 실행중인 경우
  2. 낮은 무결성 (실행 중일 때 보안 경고가 표시됨) 낮은 무결성으로 디버그 뷰를 실행해야합니다. 이를 수행하기 전에 dbgview.exe의 무결성 수준을 변경해야합니다.
  3. Visual Studio를 사용하고 디버거 (F5 키 누름)로 실행중인 경우 디버그 출력은 Visual Studio에서 출력 창에 실제로 캡처됩니다. ctrl f5로 프로그램을 실행 해보십시오.
2

이것이 작동하지 않을 수도있는 데는 여러 가지 이유가 있습니다.

  1. 따라서 당신이 그것을보고하지 않는, 디버그 출력 텍스트가 Immediate 창에 Output 창에서 리디렉션지고 : 여기 당신은이 작업을 얻을 확인하는 데 필요한 모든 것들이 있습니다 - 실수로이 비활성화?

    • Debug
    • Options and Settings
    • [ ] Redirect all Output Windows text to the Immediate Window
  2. Output 창이 표시 :이 전원을 켜려면? Output 창에서

    • Debug
    • Windows
    • Output
  3. 사용할 수는 Program Output을해야합니까?

    • Debug
    • Windows
    • Output
    • 당신이 올바른 Debugging Type 선택한 마십시오 창
    • [x] Program Output
  4. 내부의 아무 곳이나 마우스 오른쪽 단추로 클릭? Solution Explorer에서

    • (보기> 솔루션 탐색기)
    • 프로젝트를 마우스 오른쪽 버튼으로 클릭 창
    • Properties
    • Debugging
    • Debugging Type : Auto에 하나 Native 또는 Mixed
  5. 에서 변화
  6. 프로그램이 시작되기 전에 디버거가 연결 되려고합니까? 오프 Attach설정하려면 : No

  7. 로 변경하십시오 Solution Explorer (보기> 솔루션 탐색기)에서

    • Properties,
    • 프로젝트를 마우스 오른쪽 버튼으로 클릭
    • Debugging
    • Attach을 창
  8. OutputDebugStringW()을 사용하고 있습니까? 대신 OutputDebugStringA()을 사용해보세요.

  9. 마지막으로 디버깅 모드에서 프로그램을 시작 했습니까? :-) 헤이, 당신은 결코 모를 것이다! Start Debugging (F5)

  10. 그래서 위의 내가 올바르게 설정했다 확인했다 모든 일이되기 전에 내가 포괄적 인 목록을 보지 못했다

Debug

    • .