C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[24649] [질문]메세지 핸들러에서..
괴로운 [carl] 743 읽음    2003-03-07 11:35
메세지를 다음과 같이 선언했습니다.
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에 쓰레기값이 들어갈까여?..
아시는 분 답변부탁드립니다..


+ -

관련 글 리스트
24649 [질문]메세지 핸들러에서.. 괴로운 743 2003/03/07
24654     Re:[질문]메세지 핸들러에서.. 임문환 1358 2003/03/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.