|
결론부터 말씀드리면 전송은 제대로 된 것이며, 출력 부분에 문제가 있는 것 입니다.
메모리에 문자열을 보관할 때 문자열 끝에는 문자열이 끝났다는 것을 알리는 코드 \0 이 있어야 합니다.
strcpy()로 복사를 하셨으니 No[3], Type[3] 영역에는 문자열 끝을 알리는 0이 들어가 있겠죠.
ShowMessage는 문자열 한 줄만 출력합니다.
그러므로 No 영역을 찍다가 0을 만나니까 문자열이 끝났다고 생각하고 출력을 종료한 것 입니다.
^^
그럼
20000
곰두리아빠 님이 쓰신 글 :
: //헤더파일에는...
: typedef struct stc
: {
: char No[4];
: char Type[4];
: } stc;
: typedef Tstc* Pstc;
:
: Tstc rec;
:
: //함수 A에서 cpp 에서 이와 같은 방법으로 값을 넣습니다.
: strcpy(rec.No,IntToHex(No,3).c_str());
: strcpy(rec.Type,IntToHex(Type,3).c_str());
:
:
: //함수 B 에서 아래와 같이 데이타를 보내고자 합니다.
: char * Buff = new byte[sizeof(rec)];
: memcpy(Buff, &rec, sizeof(rec));
: ShowMessage(Buff);
: //ShowMessage 부분에서 rec.No값만 찍힙니다. 하지만 rec.Type. 만 찍으면 잘 나옵니다. 왜 그럴까요??
:
: Socket->SendBuf(Buff,sizeof(rec));
: //때문에 받는 쪽도 rec.No 데이타만 받아집니다.
|