Q&A

  • 최용일님 도와 주세요.
DLL에서

procedure SendData;

var

Hwnd: THandle;

pData: Pointer;

begin

pData := ....;

Hwnd := FindWindow('TForm1', 'Form1');

if Hwnd <> 0 then

SendMessage(Hwnd, WM_USER_SENDDATA, 0, Integer(pData))

else

ShowMessage('Receiver window not found.');

end;



어플리케이션내에서

type

TForm1 = class(TForm)

...

public

procedure WMUserSendData(var Msg: TMessage); message WM_USER_SENDDATA;

end;



procedure TForm1.WMUserSendData(var Msg: TMessage);

var

MyData: Pointer;

begin

MyData := @Msg.LParam;

...

end;



위의 소스는 용일님 전에 Dll에서 애플리케이션으로 데이타를 넘주는 것이였습니다.

그런데 제가 해보니 WM_USER_SENDDATA이 선언이 되지 않았는다 메세지 띄네요. 그리고



pData := ....;----> 여기서 정확히 어떤값이 들어가야합니까?

Hwnd := FindWindow('TForm1', 'Form1');--->TForm1는 애플리케이션의 클래스를 의미합니까?

애플리케이션에서 msg 변수는 어디서 값을 받나요?



또한 이 소스로 두 Dll간의 데이타를 주고 받을 수 있을까?

1  COMMENTS
  • Profile
    최용일 2000.07.29 21:04
    안녕하세요. 최용일입니다.



    const

    WM_USER_SENDDATA = WM_USER + $1000;



    위와같은식으로 상수로 선언해서 사용하세요...



    pData는 건네줄 자료의 주소값입니다.



    이것은 원하는 대로 정의해서 쓰세요...



    ^^ 항상 즐코하세요.



    김태영 wrote:

    > DLL에서

    > procedure SendData;

    > var

    > Hwnd: THandle;

    > pData: Pointer;

    > begin

    > pData := ....;

    > Hwnd := FindWindow('TForm1', 'Form1');

    > if Hwnd <> 0 then

    > SendMessage(Hwnd, WM_USER_SENDDATA, 0, Integer(pData))

    > else

    > ShowMessage('Receiver window not found.');

    > end;

    >

    > 어플리케이션내에서

    > type

    > TForm1 = class(TForm)

    > ...

    > public

    > procedure WMUserSendData(var Msg: TMessage); message WM_USER_SENDDATA;

    > end;

    >

    > procedure TForm1.WMUserSendData(var Msg: TMessage);

    > var

    > MyData: Pointer;

    > begin

    > MyData := @Msg.LParam;

    > ...

    > end;

    >

    > 위의 소스는 용일님 전에 Dll에서 애플리케이션으로 데이타를 넘주는 것이였습니다.

    > 그런데 제가 해보니 WM_USER_SENDDATA이 선언이 되지 않았는다 메세지 띄네요. 그리고

    >

    > pData := ....;----> 여기서 정확히 어떤값이 들어가야합니까?

    > Hwnd := FindWindow('TForm1', 'Form1');--->TForm1는 애플리케이션의 클래스를 의미합니까?

    > 애플리케이션에서 msg 변수는 어디서 값을 받나요?

    >

    > 또한 이 소스로 두 Dll간의 데이타를 주고 받을 수 있을까?