반응형
Visual Studio 2005에서 Windows Mobile 5.0 프로젝트를 만들고, 그걸 실제 PDA에 올려서 바로 실행하면, 콘솔 어플리케이션으로 되어 있어도 화면에서는 아무것도 볼 수 없다. Windows CE(Mobile) 계열에는 기본적으로 콘솔 창이 없기 때문이다.

대신에, PDA와 PC를 연결해 놓고 Visual Studio에서 디버그를 하면 "출력" 창을 통해 printf로 찍히는 메세지를 볼 수 있다. 이건 정말 많은 도움이 된다.

그.런.데,
분명히 printf를 통해 특정 문자열을 출력하도록 해 놨는데도 아무 반응도 없이 printf를 그냥 지나가 버리는 경우가 있다.
왜 그런지 알 수가 없어서 string 타입으로 되어 있는 변수를 char*로 변환도 해보고, char[1000]로 만들어서 직접 복사해 넣어보기도 하고, 별별 짓을 다 했는데도 유독 그 문자열만 찍히지 않는 거다.

뭥미...
물론 cout을 쓰니 출력'만큼은' 잘 해 주었다. 하지만 cout으로 찍히는 메세지를 출력창을 통해서 보면 느릿느릿, 심지어 내 타자속도보다도 느리게 출력해 주어서 도저히 쓸 수가 없었다. 여러 대의 PDA로 서로 Wi-Fi를 통해 메세지를 주고받으며 테스트하기 때문에 이놈의 cout 메시지 보다가 다른 기기들과 속도가 안맞아서 제대로 진행이 안되기 때문이다.

네이버에서는 당연히 검색해도 안나오고,
(모바일 개발환경 관련된 글 자체가 별로 없더라 ㅠㅠ)
구글에서 영어로 검색하다가 증거가 유력한 글 발견!

"WINCE 5.0 printf string length limitation."

... ㅠ_ㅠ
256글자가 넘어가는 문자열은 소리소문 없이 그냥 무시당한다고 한다.
아아아아아앙ㄹ랑ㄴㅁㄹㄴㄻㄹㄷㄹㄷㅈㄴㄷㅁㄴㅇ
다른 모바일 플랫폼의 개발환경은 어떤지 모르지만, 보통의 win32 개발환경보다는 여러가지로 열악하다. ㅠㅠ

반응형
블로그 이미지

Bryan_

,
반응형
#pragma는 컴파일할 때 지정해 주는 사항들에 대한 표현이다.
라이브러리를 첨부하거나 컴파일 하는 동안 보여주는 경고 일부를 무시하는 등의 설정을 할 수 있다.

#pragma comment(lib, "ws2_32.lib")

이것은 ws2_32.lib 파일을 컴파일 시에 추가하겠다는 의미이다.
VS .NET이나 Visual C++ .NET을 쓸 때 프로젝트 속성 창을 통해 설정해줄 수도 있는데,
솔루션이름에서 마우스 오른쪽 단추 - 속성 -> 구성 속성 - 링커 - 입력 에 온 뒤
오른쪽 창의 '추가 종속성' 부분에 ws2_32.lib파일을 적어 주는 것과 같다.

.NET에서 이런 설정을 해 주지 않으면 include가 제대로 되어 있어도
'symbol' 외부 기호('function' 함수에서 참조)를 확인하지 못했습니다.
와 같은 링크 에러(LNK2019)를 발생시킨다.
반응형
블로그 이미지

Bryan_

,