본문 바로가기

디버깅

win32 api 디버깅 하는법 OutputDebugString( _T("Test Output Debug\n")); 이와 같이 하면 Debug 창에 출력을 할 수 있다. 그런데 가끔 OutputDebugStr( _T("Test Output Debug\n")); 이와 같이 사용하는 코드를 보게 되는데. 일반적으로 이코드는 컴파일 시 오류가 뜬다. 실제적으로 OutputDebugStr(..) 은 mmsystem.h 에 #if (WINVER 더보기
콘솔 디버깅 법!! 프로그램을하다보면 콘솔디버깅이필요할때가있다. 그러나 만약 윈도 프로그램일경우 비주얼씨내의 아웃풋윈도우등에다가 출력을한다. OutputDebugStr(msg); afxDump 더보기
FormatMessage() 사용법!! 윈도우즈 환경에서는 에러번호를 알기 위해 GetLastError()함수를 사용한다. 하지만, DWORD로 넘어오기 때문에 무슨에러인지 알아보기가 어렵다. 그래서 에러번호를 문자열로 바꿔줘야할 필요가 있는데, 이 때 쓰는 함수가 FormatMessage()이다. OS는 에러 번호를 문자열로 표시 하기위해 테이블을 하나 만들어서 DLL로 관리를 한다. 이 DLL이 Message Dll 이다. 다음은 FormatMessage를 사용하는 예이다. int main() { setlocale(LC_ALL, "KOREAN"); // printf 에서 unicode 로 한글을 출력 하는 방법이다. // C++에서는 imbue() 라는 함수로 사용해야 합니다. HWND hwnd = CreateWindow( 0, 0, 0,.. 더보기
윈도우 프로그램에서 printf 사용하여 디버깅 F9를 이용한 디버깅도 많이 쓰지만 실시간으로 디버깅 할때 가장 편하게 쓰는 것이 printf 였습니다. 윈도우 프로그래밍 할때도 printf를 이용할 수 있는 방법입니다. 프로그램에 #ifdef _DEBUG #pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console" ) #endif 위 코드를 넣어주시면 프로그램 내에 아무데서나 printf를 이용하여 콘솔창에 출력하실 수 있습니다. 더보기