|
메세지를 다음과 같이 선언했습니다.
MESSAGE_HANDLER(WM_COPYDATA,TMessage,OnCopyData);
다음은 함수입니다..
void __fastcall OnCopyData(TMessage& msg);
구현부분에서는
typedef struct
{
char text[30];
}MsgCmd;
void __fastcall TFormMain::OnCopyData(TMessage& msg)
{
COPYDATASTRUCT cds;
if(cds.cbData == sizeof(MsgCmd)) //여기에 크기가 다른 값이 옵니다.
{
MsgCmd msg1;
memcpy(&msg1,&cds.lpData,sizeof(MsgCmd));
ShowMessage((AnsiString)msg1.text);
}
delete cds;
}
와 같이 했는데여..
보내는 부분에서는 잘 갑니다..그런데..
받는 곳에서는 위부분의
cds.cbData == sizeof(MsgCmd)의 사이즈가 틀립니다.
보내는 부분은 VC++로 만들었습니다.
void CVC_CommDlg::senddata()
{
MsgCmd msg;
m_strSend = (LPCSTR)"Send....";
strcpy(msg.text,m_strSend);
cds.lpData = &msg;
cds.cbData = sizeof(msg);
cds.dwData = 0;
::SendMessage(hWnd,WM_COPYDATA,(WPARAM)m_hWnd,(LPARAM)&cds);
}
왜 받는 부분에서는 cds에 쓰레기값이 들어갈까여?..
아시는 분 답변부탁드립니다..
|