|
사용중인 윈도 버전이?
비스타나 Win7일 경우 wchar_t 를 사용해보세요.
OS는 기본 wchar_t 형식으로 데이터를 넘기는데 받는 쪽에서 char 으로 받으면
정상적으로 받질 못합니다.
주인백곰 님이 쓰신 글 :
: 인디10 최신버전으로 공부하고있습니다.
: idtcpclient 가 접속을 했을때 서버에서는 클라이언트의 포트번호를 추출하여 화면에 표시해주려고 합니다.
:
: BYTE szUserTemp[255];
: String PORT_add = AContext->Binding->PeerPort;
: memset(szUserTemp, 0, sizeof(szUserTemp));
: szUserTemp[0] = cn;
: sprintf(&szUserTemp[1],"%s",PORT_add.c_str());
:
: 이런 식으로 구성을 하였을때 szUserTemp[1] 에는 포트번호의 첫번째 숫자만 들어가더군요..
: PORT_add의 data를 보면
:
: Watch Name Value
: IP_add { u"4693" }
: Data :00F1219C L"4693"
: [0] L'4' 52U (0x0034)
: [1] L'6' 54U (0x0036)
: [2] L'9' 57U (0x0039)
: [3] L'3' 51U (0x0033)
: [4] L'\0' 0U (0x0000)
:
: 이런식으로 잘 들어가있는데..
:
: szUserTemp
: [0] '&' 38 (0x26)
: [1] '4' 52 (0x34)
: [2] '\0' 0 (0x00)
: [3] '\0' 0 (0x00)
: [4] '\0' 0 (0x00)
: [5] '\0' 0 (0x00)
: [6] '\0' 0 (0x00)
: 데이터는 이렇게 저장되네요...
:
: 찾아본 원인으로는 바이트 오더링 때문이라고 하는데 해결방법좀 알려주세요..
|