데이타를 주는 프로그램이 Visual C++(Console Application)으로 짜여져있어서
데이타를 받을 수는 없고 줄수밖에 없다더군요.
그래서 델파이프로그램의 핸들을 찾기위해서 FindWindow라는 함수를 사용하여
핸들을 찾을려고 합니다. 그런데 핼프를 보니 메인폼의 클래스의 명으로 해야한다고
쓰여있더군요. 저는 서브폼에 있는 메모콤포넌트에 입력할려고 하는데 않되네요.
밑에 소스를 추가하겠습니다. 고수님들의 조언을 부탁드립니다.
메인폼의 클래스명은 TfMainForm 이고 실직적으로 데이타를 받는 폼의 클래스명은
TfSim_Para입니다.
Visual C++
//---------------------------------------------------------
MsgHandle1 = ::FindWindow("TfSim_Para", NULL);
MsgHandle = ::RegisterWindowMessage("hoya72");
TmpCopyData.dwData = MsgHandle;
TmpCopyData.cbData = sizeof(TData);
strcpy(TmpData.TmpStr, "give your offered load (a>0): ");
TmpCopyData.cbData = sizeof(TmpData);
TmpCopyData.lpData = &TmpData;
::SendMessage(MsgHandle1,WM_COPYDATA, NULL, LPARAM(&TmpCopyData));
//--------------------------------------------------------------------
Delphi (TfSim_Para에 있는 내용)
//------------------------------------------------------------------
procedure TfSim_Para.WndProc(var wpMessage: TMessage);
var
DataStruct : TCopyDataStruct;
Data: TData;
begin
If (wpMessage.Msg = WM_COPYDATA) And (PCopyDataStruct(wpMessage.lParam)^.dwData = MsgHandle) Then
begin
CopyMemory(@data, PCopyDataStruct(wpMessage.lParam)^.lpData, SizeOf(TData));
wpMessage.Result := 1;
memo1.lines.add(Data.s);
end
else
inherited WndProc(wpMessage);
end;