서로다른 프로그램과의 메시지 통신을 하려고 합니다.
두개의 프로그램이 존재합니다.
하나는 비주얼 씨로 만들었구요(가) 하나는 델파이에서 만들었습니다(나).
(가)에서 (나)프로그램을 실행시키구요 서로 메모리를 공유하고 있습니다.
단 메모리에 쓰고 읽을때 서로 메시지 통신을 하려고 합니다.
마지막으로 (나)프로그램에서는 항시 (가)에서 보내는 메시지를 항시 체크해야 합니다. 당연하다구요?
여러가지 테스트해본결과 (나)에서 보낸 메시지를 (가)에서는 받을 수 있습니다. 단 (가)에서 보낸 메시지를 받는 부분을 못하고 있습니다.
다음은 (나)에서 메시지 보내는 방법입니다. (가)에서 메시지 보내는 방법도 동일합니다.
nRegMsg := RegisterWindowMessage('IC Card');
SendMessage(HWND_BROADCAST, nRegMsg, 0,0 );
이 문제의 해결여부에 따라 여러사람이 달려 있습니다.. 무엇이?
그럼 여러 고수님들의 답변을 기다립니다.
한가지.. 무지 급하다는 사실 잊지 말아주세요~
감사합니다.
그리고 BroadCast로 메세지를 보내는것보다는 특정 윈도우로 보내는것이 더 좋을듯 합니다.
FindWindow로 (가)나 (나)의 핸들을 얻어와서 SendMessage를 해줘도 됩니다.
그리고 델파이에서 메세지를 받는법은 VC보다 훨씬간편합니다.
물론 C에서 처럼 WinProc을 가지고 할수도 있겠지만 특정 메세지만을 받을것이라면 더 좋은 방법이 있습니다.
procedure GotMessage(var Message: TMessage); message nRegMsg;
로 선언을 하신후..
procedure TMainForm.GetMessage(var Message : TMessage);
begin
end;
에서 처리를 해주시면 됩니다.
그럼..
진정은 께서 말씀하시기를...
> 서로다른 프로그램과의 메시지 통신을 하려고 합니다.
> 두개의 프로그램이 존재합니다.
> 하나는 비주얼 씨로 만들었구요(가) 하나는 델파이에서 만들었습니다(나).
> (가)에서 (나)프로그램을 실행시키구요 서로 메모리를 공유하고 있습니다.
> 단 메모리에 쓰고 읽을때 서로 메시지 통신을 하려고 합니다.
> 마지막으로 (나)프로그램에서는 항시 (가)에서 보내는 메시지를 항시 체크해야 합니다. 당연하다구요?
>
> 여러가지 테스트해본결과 (나)에서 보낸 메시지를 (가)에서는 받을 수 있습니다. 단 (가)에서 보낸 메시지를 받는 부분을 못하고 있습니다.
>
> 다음은 (나)에서 메시지 보내는 방법입니다. (가)에서 메시지 보내는 방법도 동일합니다.
> nRegMsg := RegisterWindowMessage('IC Card');
> SendMessage(HWND_BROADCAST, nRegMsg, 0,0 );
>
> 이 문제의 해결여부에 따라 여러사람이 달려 있습니다.. 무엇이?
>
> 그럼 여러 고수님들의 답변을 기다립니다.
> 한가지.. 무지 급하다는 사실 잊지 말아주세요~
> 감사합니다.