procedure TForm1.Button2Click(Sender: TObject);
var szTmp,szLRC,szBuf : string;
inBuf : array [0..255] of char;
begin
szTmp:= chr($0A) + chr($01) + chr($04) + chr($A1) + chr($00) + chr($01) + CR;
szLRC:= format('%.2x',[calcLRC(szTmp,length(sztmp))]);
szBuf:= ':' + szTmp + szLRC+CR ;
FillChar(inBuf, SizeOf(inbuf), Chr(0));
strPCopy(inBuf, szTmp);
end;
위에 내용인데요 실제로 inBuf변수에 값을 보면
:,#10,#1,#4,#161----> 여기까지만 복사되구 나머진 어디루 갔는지...
이것땜에 한참 헤메구 있는데 도대체 이유를 모르겠네요.
다른 문자열은 제대로 되는데 유독 여기서만 복사가 안되네요.
고수님들 부탁드립니다....
Copies a Pascal string to a null-terminated string.
이라 나와 있지요.
즉 null을 만나면 스트링이 종료 된것으로 간주를 하는 것 같군요.
중간에 chr($00)가 null을 의미 하고 있으니 당연히 그전까지만
인식하고 카피가 되는 것이 겠지요.
CopyMemory(@inBuf, @sztmp[1], Length(sztmp));
이렇게 하면 모두 복사가 되는군요.
수고하세요.