간혹 c로 작성된 소스의 특정 함수내에서 어떤 변수가 어떤 값을 갖는지 궁금할 때가 있다.
어떻게 확인하느냐는 스타일 나름인데.. 난 디버깅보다는 Afxmessagebox() 사용을 선호한다.
(breakpoint 잡기의 귀차니즘으로..)
하지만 cpp가 아닌 c로 작성된 소스에서는 Afxmessagebox()를 쓸 수 없으므로
Messagebox()를 사용하면 된다.
MessageBox를 사용하기 위해서는
#include <windows.h> 를 추가
int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)
첫번째 인수 hWnd는 메시지 박스를 소유한 윈도우, 이 윈도우의 중앙에 메시지 박스가 나타난다.
특별한 이유 없다면 NULL을 쓰면 된다.
두번째 인수 lpText : 출력할 문자열
세번째 인수 lpCaption : 메시지박스의 이름 (아무거나 해도 무방)
네번째 인수 uType : 아이콘, 버튼 등을 선택 , MB_OK 로 하면 OK버튼이 나온다...
헉.. 근데..MB.... OK ??????????
중요한것은 두번째 인수인데..
예를 들어 MFC 기반의 c++ 이라면
double v 의 값을 알고 싶다면..
CString chk;
chk.Format("v = %lf", v);
AfxMessageBox(chk)를 통해 v의 값을 알아낼 수 있다.
MessageBox의 경우라면..
char *gcvt(double value, int ndec, char *buf); 이 함수를 이용하면 된다.
첫번째 인자는 변환할 double형 값입니다.
두번째 인자는 전체 몇자리를 문자열로 바꿀것인가를 지정합니다.
세번째는 바꾼 문자열이 저장될 버퍼입니다.
리턴값은 buf로 주어진 버퍼의 포인터입니다.
출처 :
char buf[256];
gcvt(v, 10, buf);
MessageBox (NULL, buf, "title", MB_OK);
이런식..
'연구관련 > 프로그래밍' 카테고리의 다른 글
Visual Studio 2008, Vector erase할 때 주의사항 (0) | 2010.12.29 |
---|---|
c++ vector 사용법 (0) | 2010.12.13 |
afxcontrolbars.h 에러 , fatal error C1083: Cannot open include file: 'afxcontrolbars.h': No such file or directory (0) | 2010.12.08 |
Rob Hess의 SIFT Open Source 오류 (절대값) (2) | 2010.12.08 |
[MFC] Rich Edit 2.0 사용시 dialog 실행 안되는 현상 (0) | 2010.11.17 |