DLL里面如何进行消息映射?

shaohongyoung 2009-03-05 10:38:59
DLL里面如何进行消息映射?

1、先.h中消息声明:afx_msg LONG OnComm(WPARAM ch, LPARAM port);
2、后.cpp消息映射:ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
3、最后.cpp中消息实现LONG CDLLBcvmApp::OnComm(WPARAM ch, LPARAM port)
{
return 0;
}


怎么才能实现上面的代码在DLL消息映射
...全文
223 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghjw123 2011-11-22
  • 打赏
  • 举报
回复
楼主怎么解决的啊?
oyljerry 2009-03-05
  • 打赏
  • 举报
回复
添加消息循环
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
shaohongyoung 2009-03-05
  • 打赏
  • 举报
回复

// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCOM_DLL_TESTApp)
afx_msg LONG OnComm(WPARAM ch, LPARAM port);
//}}AFX_VIRTUAL
//{{AFX_MSG(CCOM_DLL_TESTApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()


上面那个粘贴错了。
shaohongyoung 2009-03-05
  • 打赏
  • 举报
回复
我生成的是MFC AppWizard(DLL)
里面自带一个XXXXXApp

消息声明添加了

// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCOM_DLL_TESTApp)
afx_msg LRESULT OnComm(WPARAM ch, LPARAM port);
//}}AFX_VIRTUAL
//{{AFX_MSG(CCOM_DLL_TESTApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()

我在里面的消息映射添加了

BEGIN_MESSAGE_MAP(CCOM_DLL_TESTApp, CWinApp)
//{{AFX_MSG_MAP(CCOM_DLL_TESTApp)
ON_MESSAGE(WM_COMM_RXCHAR, OnComm)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()



然后添加一个

LONG CCOM_DLL_TESTApp::OnComm(WPARAM ch, LPARAM port)
{
return 0;
}


可是没有用。。为什么

闪破风浪 2009-03-05
  • 打赏
  • 举报
回复
一样呀~
lingyin55 2009-03-05
  • 打赏
  • 举报
回复
up
stivenjia 2009-03-05
  • 打赏
  • 举报
回复
根在app一樣的mfc已經封裝好了

如果你在dll内沒有開闢新的消息泵那麽dll窗體與宿主共用一個消息泵。
feng19852007 2009-03-05
  • 打赏
  • 举报
回复
你的类从CCmdTarget派生,然后在类声明中添加:DECLARE_MESSAGE_MAP()宏
在实现文件中添加:
BEGIN_MESSAGE_MAP(YOUCLASSNAME, CCmdTarget)
ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
END_MESSAGE_MAP()
shaohongyoung 2009-03-05
  • 打赏
  • 举报
回复
我明白了。谢谢高人
cnzdgs 2009-03-05
  • 打赏
  • 举报
回复
消息映射是窗口类或线程类的概念,与DLL无关。你的消息是发给哪个窗口或线程的?
shaohongyoung 2009-03-05
  • 打赏
  • 举报
回复
oyljerry 添加消息循环 添加到那里

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧