2008. 5. 22. 17:12
CE에서의 디버깅 메시지 - RETAILMSG
2008. 5. 22. 17:12 in Windows Embedded/Windows Embedded CE 6.0
플랫폼 빌더 내의 PUBLIC나 PLATFORM쪽의 소스들을 보게 되면 'DEGUBMSG()'라는 녀석을 자주 볼 수 있다. 이녀석은 디버깅 모드로 빌딩을 했을 때 디버깅 메시지를 볼 수 있도록 해주는 녀석이다. 하지만.. 디버깅 모드로 빌드를 하게되면.. 용량도 엄청(?)커지게 되고.. 느리지고.. 뭐 그래서 잘 하지 않을 것이다.
그렇다면.. 릴리즈 모드로 빌드를 해서 디버깅 메시지를 어떻게 확인을 할 수 있을까? -_-
그래서 'RETAILMSG()'라는 녀석이 존재한다.
'RETAILMSG()'라는 녀석은 릴리즈 모드로 빌드를 했을 때 디버깅 모드의 'DEBUGMSG()'와 마찬가지로 디버깅 메시지를 볼 수 있도록 해주는 녀석이다.
RETAILMSG()의 문법은 다음과 같다.
RETAILMSG( Expression, Message)
- Expression : Boolean expression used to determine if the message would be output
- Message : Expression to be printed using printf format style.
- Expression : Boolean expression used to determine if the message would be output
- Message : Expression to be printed using printf format style.
Expression는 0 혹은 0이 아닌 다른 것으로써, 0이 아니면 Message의 내용을 출력하게 된다..
Message는 일반적인 printf와 같은 포맷으로 동작을하고, Message의 내용이 디버깅 메시지로 출력이 된다.
주의할 사항은 RETAILMSG는 2개의 인자(Expression, Message)만을 받기 때문에 두번째 인자를 주의해서 사용해야 한다.
예를 들면 다음과 같다.
예...
RETAILMSG(1, (TEXT("This is Test Message...")));
Expression : 1
Message : (TEXT("This is Test Message..."))
또 다른 예...
RETAILMSG(1, (TEXT("This value is %x\r\n"), value));
Expression : 1
Message : (TEXT("This value is %x\r\n"), value)
RETAILMSG(1, (TEXT("This is Test Message...")));
Expression : 1
Message : (TEXT("This is Test Message..."))
또 다른 예...
RETAILMSG(1, (TEXT("This value is %x\r\n"), value));
Expression : 1
Message : (TEXT("This value is %x\r\n"), value)
위의 예에서 보는 것처럼 Message에 들어갈 내용을 괄호로 묶어 하나의 인수처럼 사용을 해야한다. 괄호로 묶지 않고 일반 C에서 사용하는 printf처럼("xxx %d", value) 사용하면 에러가 발생한다. -_-
'Windows Embedded > Windows Embedded CE 6.0' 카테고리의 다른 글
Windows CE 6.0 빌드 메뉴.. (0) | 2008.06.25 |
---|---|
DEBUGMSG를 release모드에서 출력하기 (0) | 2008.05.28 |
CEPC 해상도 조절 (0) | 2008.01.30 |
펜티엄 3 기계에 Windows Embedded CE 6.0 설치 (0) | 2008.01.29 |
제어판에 네트웍 설정 추가하기 (0) | 2008.01.25 |