안녕하세요.
senddata :string;
tpSendBuff Pointer;
strcopy(tpSendBuff, Pchar(senddata));
여기에서 senddata안에는 일반string값과 binary값이 공존합니다.
즉, null값이 중간에 끼어 있거든요.
위와 같이 strcopy를 했더니 senddata의 최초 null을 만난 이후로의 값은
tpSendBuff로 옮겨 지지가 않더군요.
PChar가 null terminated String pointer여서 그런 거 같습니다.
C 에서는 string안에 null값이 있더라도
memcpy( (char *)destbuff, (char *)srcebuff, 1024);
요렇게 하면 srcebuff의 1024byte가 destbuff가 가리키는 곳으로
그냥 들어가거든요.
delphi에서는 이렇게 할 수 없나요.
그러니까 binary 가 포함된 data를 pointer로 옮기는 방법이 궁금합니다.
winapi를 사용해서라도 된다면 좀 알려주십시오.
그럼, 연락기다리겠습니다.
> 안녕하세요.
>
> senddata :string;
> tpSendBuff Pointer;
>
> strcopy(tpSendBuff, Pchar(senddata));
>
> 여기에서 senddata안에는 일반string값과 binary값이 공존합니다.
> 즉, null값이 중간에 끼어 있거든요.
> 위와 같이 strcopy를 했더니 senddata의 최초 null을 만난 이후로의 값은
> tpSendBuff로 옮겨 지지가 않더군요.
> PChar가 null terminated String pointer여서 그런 거 같습니다.
>
> C 에서는 string안에 null값이 있더라도
> memcpy( (char *)destbuff, (char *)srcebuff, 1024);
> 요렇게 하면 srcebuff의 1024byte가 destbuff가 가리키는 곳으로
> 그냥 들어가거든요.
>
> delphi에서는 이렇게 할 수 없나요.
> 그러니까 binary 가 포함된 data를 pointer로 옮기는 방법이 궁금합니다.
> winapi를 사용해서라도 된다면 좀 알려주십시오.
>
> 그럼, 연락기다리겠습니다.
>
copymemory를 사용하시면 됩니다.
copymemory의 인수사용도 memcpy와 같습니다.