从32位转换为64位的问题

quark2000 2010-07-15 09:13:45
从VC2008在32位编译是没问题的,到64位就出现如下错误:
第一个错误
error C2440: “static_cast”: 无法从“void (__cdecl CGridCtrl::* )(UINT)”转换为“void (__cdecl CWnd::* )(UINT_PTR)”
=================================
文件中式这样:
BEGIN_MESSAGE_MAP(CGridCtrl, CWnd)
...
...
ON_WM_TIMER()
...
...
END_MESSAGE_MAP()
------------
错误指向 ON_WM_TIMER()
=================================
第二个错误:
error C2440: “static_cast”: 无法从“LONG (__cdecl CLineStyleWnd::* )(UINT,LONG)”转换为“LRESULT (__cdecl CWnd::* )(WPARAM,LPARAM)”
==================================
BEGIN_MESSAGE_MAP(CLineStyleWnd, CWndRect)
...
...
ON_MESSAGE(CPN_SELENDOK, OnSelEndOK)
...
...
END_MESSAGE_MAP()
--------------------
错误指向 ON_MESSAGE(CPN_SELENDOK, OnSelEndOK)

请哪位高手帮我解决一下,我请你请吃饭。
...全文
753 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangxing0 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 stjay 的回复:]
很简单的错误,自己修改一下就行了

void CGridCtrl::OnTimer(UINT_PTR nIDEvent)

LRESULT CLineStyleWnd::OnSelEndOK(WPARAM wPara,LPARAM lPara)
[/Quote]
顶 正确
oyljerry 2010-07-15
  • 打赏
  • 举报
回复
编译器位数不同,一些定义类型有不一样,对应错误的语句,按照错误提示修改一下类型
Eleven 2010-07-15
  • 打赏
  • 举报
回复
afx_msg LRESULT OnSelEndOK(WPARAM wParam, LPARAM lParam);
自定义消息函数申明
stjay 2010-07-15
  • 打赏
  • 举报
回复
很简单的错误,自己修改一下就行了

void CGridCtrl::OnTimer(UINT_PTR nIDEvent)

LRESULT CLineStyleWnd::OnSelEndOK(WPARAM wPara,LPARAM lPara)

15,471

社区成员

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

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