2012-03-02 6 views
8

Visual Studio 2010에서 빈 프로젝트를 시작하여 C 응용 프로그램을 작성했습니다. 출력 창 (메뉴 디버그 -> ->출력)에 디버그 정보를 보내려면 어떻게해야합니까? TRACE 또는 OutputDebugString 또는 비슷한 것을 구현하는 비교적 간단한 방법이 있습니까?Visual Studio '출력'창에 디버그 정보를 보내는 간단한 방법

+0

[카메라 C++ IDE 내의 출력 창에 인쇄 출력 (HTTP의 중복 가능성 : // stackoverflow.com/questions/7697842/printing-output-on-the-output-window-in-visual-c-ide) –

+0

참조 : http://stackoverflow.com/q/1333527/39648 –

답변

8

OutputDebugString은 VS C 프로그램에서 사용할 수 있습니다.

#include <windows.h> 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    OutputDebugString(_T("Hello World\n")); 
    return 0; 
} 

디버깅 "디버그"를 선택 "에서보기 출력 :"에 대한 출력 창에 (디버그> 디버깅 시작)

로 실행하면 출력은 볼 수

+0

_T()되고 있습니다. ...? – Simon

+1

@Simon이 도구는 유니 코드 모드와 ANSI 모드에서 모두 컴파일되는 프로그램을 만드는 데 사용되는 표준 Microsoft 사전 프로세서 매크로입니다. [tchar.h 및 친구들] (https://msdn.microsoft.com/en-us/library/windows/desktop/ff381407(v=vs.85))을 사용하지 않는 경우 _T()를 제거 할 수 있습니다. aspx # tchars). –

1

C++을 사용하는 경우 내 휴대용 TRACE 매크로에 관심이있을 수 있습니다.

#ifdef ENABLE_TRACE 
# ifdef _MSC_VER 
# include <windows.h> 
# include <sstream> 
# define TRACE(x)       \ 
    do { std::ostringstream s; s << x;  \ 
      OutputDebugString(s.str().c_str()); \ 
     } while(0) 
# else 
# include <iostream> 
# define TRACE(x) std::cerr << x << std::flush 
# endif 
#else 
# define TRACE(x) 
#endif 

예 :

#define ENABLE_TRACE //can depend on _DEBUG or NDEBUG macros 
#include "my_above_trace_header.h" 

int main (void) 
{ 
    int  i = 123; 
    double d = 456.789; 
    TRACE ("main() i="<< i <<" d="<< d <<'\n'); 
} 

상관 개선/제안/기여 ;-) 환영