자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 베를린10.1에서 인디소켓으로 레코스형 전송시
2016.08.10 23:07
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
sendmessage = packed record
s1 : string[1];
s2 : string[10];
end;
이런 구조체를 보낼려고 했더니 string[1]에서 에라가 납니다.
이 것을 string으로 바꾸니 에라가 나질 않습니다.
이것을 전송하면 크기를 어떻게 알수가 있습니까?
사이즈가 정해지지 않았는데요.
Delphi 베를린10.1에서 인디소켓으로 레코스형 전송시
2016.08.10 23:07
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
sendmessage = packed record
s1 : string[1];
s2 : string[10];
end;
이런 구조체를 보낼려고 했더니 string[1]에서 에라가 납니다.
이 것을 string으로 바꾸니 에라가 나질 않습니다.
이것을 전송하면 크기를 어떻게 알수가 있습니까?
사이즈가 정해지지 않았는데요.
우선 10.1 베를린에서는 발생하지 않습니다.
그리고, 아시는 내용이겠지만 2009 이후 버전에서는 string은 유니코드로 2바이트가 사용됩니다.
String, AnsiString을 잘 구분하셔야 할 것 같네요.
그리고 습관이지만
저는 아래와 같이 캐릭터 배열로 사용하면 SizeOf 등으로 크기를 알수 있어서 좋더라구요.(참고입니다.)
type
TSendmessage = record
s1 : char;
s2 : array[0..9] of char;
end;