在EVC4.0下编译通过且能正常运行,将该程序用VS2008转换后,编译出错,提示如下:
1>.\JYXTDlg.cpp(64) : error C2440: “static_cast”: 无法从“void (__cdecl CJYXTDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__cdecl CWnd::* )(WPARAM,LPARAM)”
1> 在匹配目标类型的范围内没有具有该名称的函数
程序中,头文件添加代码如下:
#include "PSerialPort.h"
public:
CPSerialPort* m_pSerial;//CPSerialPort类对象
static void OnDataArrive(unsigned char *data,int length,DWORD userdata);
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CJYXTDlg)
……
afx_msg void OnDataArrivedMsg(WPARAM wParam,LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()cpp文件中相关代码如下:
BEGIN_MESSAGE_MAP(CJYXTDlg, CDialog)
//{{AFX_MSG_MAP(CJYXTDlg)
……
ON_MESSAGE(WM_NEW_DATA_ARRIVE,OnDataArrivedMsg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()void CJYXTDlg::OnDataArrive(unsigned char *data,int length,DWORD userdata)
{
CJYXTDlg *pWnd=(CJYXTDlg *)userdata;
::SendMessage(pWnd->m_hWnd,WM_NEW_DATA_ARRIVE,(WPARAM)data,LPARAM(length));
}void CJYXTDlg::OnDataArrivedMsg(WPARAM wParam,LPARAM lParam)
{
//处理收到的数据
int bufLen=(int)lParam;
unsigned char *buf=(unsigned char *)wParam;
for(int i=0;i<bufLen;i++)
{
……
}
}
请各位指点迷津。
1>.\JYXTDlg.cpp(64) : error C2440: “static_cast”: 无法从“void (__cdecl CJYXTDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__cdecl CWnd::* )(WPARAM,LPARAM)”
1> 在匹配目标类型的范围内没有具有该名称的函数
程序中,头文件添加代码如下:
#include "PSerialPort.h"
public:
CPSerialPort* m_pSerial;//CPSerialPort类对象
static void OnDataArrive(unsigned char *data,int length,DWORD userdata);
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CJYXTDlg)
……
afx_msg void OnDataArrivedMsg(WPARAM wParam,LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()cpp文件中相关代码如下:
BEGIN_MESSAGE_MAP(CJYXTDlg, CDialog)
//{{AFX_MSG_MAP(CJYXTDlg)
……
ON_MESSAGE(WM_NEW_DATA_ARRIVE,OnDataArrivedMsg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()void CJYXTDlg::OnDataArrive(unsigned char *data,int length,DWORD userdata)
{
CJYXTDlg *pWnd=(CJYXTDlg *)userdata;
::SendMessage(pWnd->m_hWnd,WM_NEW_DATA_ARRIVE,(WPARAM)data,LPARAM(length));
}void CJYXTDlg::OnDataArrivedMsg(WPARAM wParam,LPARAM lParam)
{
//处理收到的数据
int bufLen=(int)lParam;
unsigned char *buf=(unsigned char *)wParam;
for(int i=0;i<bufLen;i++)
{
……
}
}
请各位指点迷津。
解决方案 »
- 请问各位哪有COM的视频教程下?
- GetBitmapBits有什么用?
- 急求菜单问题
- format()里面的参数是%?的时候才能完整显示double型变量值
- 看看用程序调用存储过程来恢复数据库为什么出错?
- ((")("))各位好!我想用Crystal report 4.6 , 1.创建不带数据库连接的报表。2.而且带表格的(除了插入excel或word 对象方法还有更好的办
- jiangsheng(蒋晟)请进
- vc6所附带的库没有win2000的 api,程序编译不能通过。怎样解决?如GetWindowLongPtr SetLayeredWindowAttributes该下在那个platform sdk?
- 疑难问题:RegisterHotKey与Accelerator(加速建)有何区别????不知道书中说的特定线程的热建是何意思?????与Accelerator(加速建)有区别吗???
- 好像有BUG
- 请问:在VC里包含了头文件<string.h>
- 连接数据库。。。
改成
LRESULT CJYXTDlg::OnDataArrivedMsg(WPARAM wParam,LPARAM lParam)