在迁移一个CRC32程序时,遇到如下问题:
编译日志:
其中的错误大多与""静态转换有关。
主要说某个参数无法转换到另一个类型。
看MSDN关于消息影射相关规定:
Map entry
|
Function prototype
|
ON_MESSAGE( <message>, <memberFxn> )
|
afx_msg LRESULT memberFxn( WPARAM, LPARAM );
|
ON_REGISTERED_MESSAGE( <nMessageVariable>, <memberFxn> )
|
afx_msg LRESULT memberFxn( WPARAM, LPARAM );
|
ON_THREAD_MESSAGE( <message>, <memberFxn> )
|
afx_msg void memberFxn( WPARAM, LPARAM );
|
ON_REGISTERED_THREAD_MESSAGE( <nMessageVariable>, <memberFxn> )
|
afx_msg void memberFxn( WPARAM, LPARAM );
|
一、简单升级错误:
1)OnSetText
原声明:afx_msg LRESULTOnSetText(UINT, LPCTSTR)
更改为:afx_msgLRESULTOnSetText(WPARAM, LPARAM)
2)OnCRCThreadDone
原声明:afx_msg void OnCRCThreadDone(WPARAM, LPARAM);
更改为:afx_msg LRESULT OnCRCThreadDone(WPARAM, LPARAM);
3)OnGetText
原声明:afx_msg LRESULT OnGetText(UINT cchTextMax, LPTSTR szText);
更改为:afx_msg LRESULT OnGetText(WPARAM cchTextMax, LPARAM szText);
4)OnSetRange
原声明:afx_msg void OnSetRange(WPARAM, LPARAM range);
更改为:afx_msg LRESULT OnSetRange(WPARAM, LPARAM range);
5)OnSetRange32
原声明:afx_msg void OnSetRange32(WPARAM lower, LPARAM higher);
更改为:afx_msg LRESULT OnSetRange32(WPARAM lower, LPARAM higher);
6)OnSetShowText
原声明:afx_msg void OnSetShowText(WPARAM bShow, LPARAM);
更改为:afx_msg LRESULT OnSetShowText(WPARAM bShow, LPARAM);
二、VC系统函数更改后的错误
1)ON_WM_NCHITTEST
出现这个错误的原因可是“人力不可抗拒”之原因造成的,因为旧版本的 ON_WM_NCHITTEST 宏使用了
UINT (__thiscall CWzButton::* )(CPoint);
类型的类成员函数指针,其定义如下:
#define ON_WM_NCHITTEST() \
{ WM_NCHITTEST, 0, 0, 0, AfxSig_wp, \
(AFX_PMSG)(AFX_PMSGW)(UINT (AFX_MSG_CALL CWnd::*)(CPoint))&OnNcHitTest },
但是新版本变成了:
#define ON_WM_NCHITTEST() \
{ WM_NCHITTEST, 0, 0, 0, AfxSig_l_p, \
(AFX_PMSG)(AFX_PMSGW) \
(static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(CPoint) > (&ThisClass :: OnNcHitTest)) },
UINT (__thiscall CWzButton::* )(CPoint);
修改的方法就是将你的OnNcHitTest函数由:
afx_msg UINT OnNcHitTest(CPoint point);
改成:
afx_msg LRESULT OnNcHitTest(CPoint point);
======================================================================本文 End==
这个程序是用在大文件下多线程CRC32的校验。
VC6版本的链接
VC8版本的链接
分享到:
相关推荐
例如,从Visual C++ 6.0 (简称VC6)迁移到Visual Studio 2010 (简称VS2010)。这一过程往往会遇到不少挑战,尤其是由于编译器差异和环境不兼容导致的各种错误和警告。本文将详细介绍在进行此类迁移时可能遇到的问题...
"130-VC-CRYPT-VS2005-VC6.0.rar" 是一个压缩包,其中包含了130个基于VC(Visual C++)的加密和解密源码示例,分为VS2005和VC6.0两个版本。这些源码不仅对于学习加密算法原理具有很高的参考价值,而且可以作为实际...
一款使用VC6.0或VS2005-2012开发必备的工具Visual assist x(破解版)。永久破解。不反弹,哈哈。本人就是使用这个
opencv-3.4.6-vc14_vc15.zip---官方OpenCV安装包,可配合PaddleInference推理库部署Paddle模型使用
"移植VC6工程到VS2010所遇问题汇总" 标题中的知识点:移植VC6工程到VS2010可能遇到的问题总结。 描述中的知识点:移植VC6工程到VS2010过程中可能会遇到的问题总结,这些问题可以在新建同名VS2010工程下移植过程中...
在您提供的压缩包中,包含的是从2005年至2010年不同版本的VC运行时库,适用于x86(32位)和x64(64位)系统。 1. **Visual C++ 2005 (v8.0)** VC2005SP1可能指的是Visual C++ 2005 Service Pack 1,这是对原始2005...
在本压缩包中,我们涵盖了从Visual C++ 2008(VC9)到Visual C++ 2017(VC15)的主要版本,包括32位和64位的安装程序,但遗憾的是,缺少了Visual C++ 2014(VC13)的运行库。 1. **Visual C++ 2008 (VC9)**:这是...
Visual C++(简称VC)6.0作为一款经典的开发环境,虽然在很多方面仍然受到程序员的喜爱,但随着Visual Studio(VS)系列的不断进步,如VS 2015和2017,开发者逐渐转向使用这些现代IDE。然而,将旧的VC 6.0工程转换到...
包括了concrt140d.dll,msvcp140d.dll-system32,msvcp140d.dll-sysWOW64,ucrtbased.dll,vcruntime140d.dll-system32,vcruntime140d.dll-sysWOW64
libboost_system-vc80-mt-gd-1_53.lib 不用自己再编译了,用了下可以使用的
首先说一下版本对照:Visual c++ 6.0(单独的C++编译器),VC----7.0(微软第一次把VC嵌入到Visual Studio .net),VC2003----VC7.1,VC2005----VC8.0,VC2008----9.0,因为.net框架是基于项目的,所以C++程序在VC...
标题提到的"vc运行库2005-2010"涵盖的是从Visual C++ 2005到Visual C++ 2010版本的运行库,这四个版本分别是:Visual C++ 2005 (VC9),Visual C++ 2008 (VC9),Visual C++ 2008 SP1 (VC9),以及Visual C++ 2010 ...
《VC6从入门到精通-VC与数据库管理》是一本旨在帮助初学者和进阶者掌握Visual C++(简称VC)编程技术,并深入理解如何在VC环境中进行数据库管理的教程。通过对这本书的学习,读者可以了解到如何利用VC6这一经典开发...
pack-7.4.29-nts-Win32-vc15-x64php-debug-pack-7.4.29-nts-Win32-vc15-x64php-debug-pack-7.4.2
vc2008到vc2017, vc9到vc15, 32位和64位全有, vc13(2014) 没有找到, vc库百度网盘打包下载!!!
VC助手(vc6-vc2005)都可用,亲测可用,完美破解
标题 "php-5.3.5-Win32-VC6-x86.zip" 指的是一个针对Windows 32位系统(x86)的PHP 5.3.5版本,它由Visual C++ 6 (VC6) 编译器编译而成,并且带有线程安全支持(TS)。这个压缩包是该特定配置下的最后一个版本,对于...
4. 解压PHP:将`php-5.3.1-Win32-VC6-x86.zip`解压,将php5apache2_2.dll等相关文件复制到Apache的modules目录。 5. 启动Apache:重启Apache服务,确保PHP模块已被成功加载。 6. 测试集成:创建一个简单的PHP文件...
至于压缩包内的"opencv-4.6.0-vc14_vc15.exe"文件,它可能是一个自解压程序,运行后会自动将OpenCV库解压并安装到指定目录,同时可能也会进行一些必要的环境变量配置,以便于在Visual Studio中使用。安装完成后,...