미분류 항목

[VS2017] cout()/ printf() 출력 VisualStudio 출력 윈도우에 안 나올때

하니_즐거운하루 2024. 9. 24. 16:14

: Visual Studio 출력 창에  cout(), printf() 메시지가 나오지 않을경우 디버그 콘솔창으로는 나오는데

  출력윈도우로 나오지 않을경우 구글링으로 답이 안나옴.

 

 

 

▶ 과감하게 OutputDebugString() 으로 변경해 주세요.

#include <iostream>

/////////////////////////////////////////////////////////////////////////////
// COutputBar

COutputWnd::COutputWnd() noexcept
{
	std::cerr << L"Hello World! on cout\n";	
	printf("Hello ! on printf\n");
	OutputDebugString(L"test 123 \n\r");
}

> 출력창
'MFCApplication1.exe'(Win32): 'C:\Windows\System32\wldp.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다.
'MFCApplication1.exe'(Win32): 'C:\Windows\System32\kernel.appcore.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다.
test 123 

'MFCApplication1.exe'(Win32): 'C:\Windows\System32\DataExchange.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다.
'MFCApplication1.exe'(Win32): 'C:\Windows\System32\d3d11.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다.

 

  혹시 아래의 빌드에러 발생하면  (정의가 되어 있지 않습니다.)

오류(활성)	E0020	식별자 "OutputDebugString"이(가) 정의되어 있지 않습니다,

#include <Windows.h> 추가해주세요.

 

 

▶ printf 처럼 동작 하게 하기위한 수정사항

#define _MY_DEBUG
void MyOutputDebugString(LPCTSTR pszStr, ...) 
{
#ifdef _MY_DEBUG
	TCHAR szMsg[256];
	va_list args;
	va_start(args, pszStr);
	_vswprintf(szMsg, pszStr, args);
	OutputDebugString(szMsg);
	va_end(args);
#endif
}

 

 

참고하세요.

반응형