在SerialPortTestDlg.h中,对WM_COMM_RXCHAR响应函数进行声明:
// Generated message map functions
//{{AFX_MSG(CDebugDlg)
afx_msg LONG OnComm(WPARAM ch,LPARAM port);
//}}AFX_MSG
在CSerialPortTestDlg.cpp中,对WM_COMM_RXCHAR进行消息映射:
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
并在CSerialPortTestDlg.cpp中,加入函数
LONG CDebugDlg::OnCommunication(WPARAM ch,LPARAM port)
{
m_strEditReceiveMsg+=ch;
UpdateData(FALSE);
return 0;
}
为什么会提示:error C2065: 'WM_COMM_RXCHAR' : undeclared identifier
我是按示例做的 都编译过不了 太郁闷了 哪位给指点迷津?
是我自己定义的 按你说的加了#define WM_COMM_RXCHAR WM_USER+5后果然可以通过了 非常感谢。
第一此用这个 不知道怎么在后面回答 郁闷 只好在这里写了。
消息映射问题
答案:1 悬赏:20
解决时间 2021-03-23 22:29
- 提问者网友:风华是一指流沙
- 2021-03-23 17:50
最佳答案
- 二级知识专家网友:浪女动了心
- 2021-03-23 18:44
WM_COMM_RXCHAR 这个消息在那个文件里面定义的,把头文件#include进来
编译器说的是 WM_COMM_RXCHAR 没有定义!而不是函数!
你写的串口程序,我对串口不熟悉。
可以解决:
1、如果WM_COMM_RXCHAR 是你用第三方的库发出的消息,那么在第三方库的头文件里面肯定有个地方定义了WM_COMM_RXCHAR 消息;
2、如果WM_COMM_RXCHAR是你自定义的消息, 你需要在头文件SerialPortTestDlg.h里面加如下一句话
#define WM_COMM_RXCHAR WM_USER+5
编译器说的是 WM_COMM_RXCHAR 没有定义!而不是函数!
你写的串口程序,我对串口不熟悉。
可以解决:
1、如果WM_COMM_RXCHAR 是你用第三方的库发出的消息,那么在第三方库的头文件里面肯定有个地方定义了WM_COMM_RXCHAR 消息;
2、如果WM_COMM_RXCHAR是你自定义的消息, 你需要在头文件SerialPortTestDlg.h里面加如下一句话
#define WM_COMM_RXCHAR WM_USER+5
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯