================================= 전송부 ============================
var
copyDataStruct: TCopyDataStruct;
sendString : String;
begin
sendString := '1234567890';
copyDataStruct.dwData := 0;
copyDataStruct.cbData := Length(sendString) + 1;
copyDataStruct.lpData := PChar(sendString);
RemoteHWND := FindWindow('TForm1','TestWin');
SendMessage(RemoteHWND, WM_COPYDATA, Application.Handle, Integer(@copyDataStruct)) ;
end;
================================= 수신부 ============================
private
procedure WMCopyData(var Msg: TMessage); message WM_COPYDATA;
....
procedure TForm1.WMCopyData(var Msg: TMessage);
var
copyDataStruct : PCopyDataStruct;
dwData : Integer;
DataLength : Integer;
getData : String;
begin
copyDataStruct := Pointer(Msg.LParam);
dwData := copyDataStruct.dwData;
DataLength := copyDataStruct.cbData;
getData := PChar(copyDataStruct.lpData);
ShowMessage(getData); <============= 여기서 '1234567890'이 아닌 '12345'까지만 나옵니다.
end;
보낼때는 '1234567890'이라고 보냈는데 받을때는 '12345'까지만 받고 가끔씩 데이터의 뒷부분이 이상한 글자로 나올때도 있습니다.
어디가 잘못된건가요?
설마 OS가 Win7 64Bit라 그런건 아니겠죠?
|