본문 바로가기
게임 공부/Windows API

[WinAPI] 윈도우즈 프로그램에서 특정 값 확인하고 싶을 때

by woohyeon 2020. 9. 9.
반응형

윈도우즈 프로그램에서 어떤 변수 또는 결과의 값을 확인하고 싶을 때가 있다. 디버거로 확인할 수 있지만 가끔 디버거로 확인하기 어려운 경우도 있다. 그럴 때 다음과 같이 사용해서 윈도우 메세지로 띄우면 된다.

 

다음은 숫자 타입의 값을 확인하고 싶을 때 문자열로 변경하여 메세지로 출력하는 방법이다. 문자열 출력을 원할 경우 그냥 바로 MessageBoxA() 함수에 넣으면 된다. MessageBoxA()는 두 번째 인자가 char* 타입이다. 따라서 와이드 타입의 문자열일 경우 MessageBoxW()를 사용하면 된다. 와이드 타입의 경우 std::wstring과 std::to_wstring()을 사용한다.

#include <string>

VOID CheckValue()
{
	// 숫자 타입의 값을 문자열로 변경
	int x = 10;
	std::string integerVal = std::to_string(x);
    
	// 메세지로 출력
	MessageBoxA(NULL, integerVal.c_str(), NULL, MB_OK);  // 와이드 타입의 문자열은 MessageBoxW 사용    
}

 

다음은 TextOut을 이용하여 x, y 좌표의 위치를 화면에 출력한다.

#include <string>

VOID PrintPosition(WORD x, WORD y)
{
	// 숫자 타입의 값을 와이드 타입 문자열로 변경
	std::wstring tmpX = std::to_wstring(x);
	std::wstring tmpY = std::to_wstring(y);
	std::wstring xyPosText = tmpX + L", " + tmpY;   // x, y

	TextOut(hdc, x, y, xyPosText.c_str(), xyPosText.size());
}



댓글