error C2440

error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE” 关于“error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE””错误的解决 1、背景:想利用自定义类将线程函数直接封装到类里面从而出现的错误。        下面是当时的错误代码(借助的是标准的控制台程序): // ConsoleApplication2.cpp : 定义... 阅读详情

VC6.0工程转VS2010工程出现C2440类似错误处理方法如下:

 

下面只是举例说明其中几种情况,其解决方法:

 

错误现象:

error C2440: “static_cast”: 无法从“UINT (__thiscall CSizingControlBar::* )(CPoint)”转换为“LRESULT (__thiscall CWnd::* )(CPoint)”


 

解决方法:找到相应错误的语句进行如下更改

afx_msg  UINT OnNcHitTest(CPoint point);->  afx_msg  LRESULT OnNcHitTest(CPoint point);
UINT CCoolBar::OnNcHitTest(CPoint point)->  LRESULTCCoolBar::OnNcHitTest(CPoint point)


其它类似错误,如下更改即可

afx_msg void OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult); -> afx_msg BOOL OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult);
void CSortListCtrl::OnEndlabeledit -> BOOL  CSortListCtrl::OnEndlabeledit


 

VC6编写的程序移植到VS2010中编译时error C2440: “static_cast”问题的解决 <br /><br />编写自定义消息映射的时候,VS编译器报错:<br />error C2440: “static_cast”: 无法从“LRESULT (__thiscall CSimpleThreadDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”<br />原因是VC6项目移植到编译时检查更严格的VS2010上,需要针对源代码做出更改,解决方法很简单:<br />ON_MESSAGE消息在afxmsg_.h中有 阅读详情

相关推荐

error: C2440: “初始化”: 无法从“initializer-list”转换为“QStringList”无构造函数可以接受源类型,或构造函数重载决策不明确

在使用qt开发应用程序的过程中,遇到如下问题,无法使用c++11新特新,初始化列表参考来自博主的解决方案,在pro文件中添加如下代码即可解决问题windows {但是我在qt的帮助文档中无法查阅到相关详细信息却在qt官网blog查到如下相关虽然大家都如此地热衷于QML和javascript技术,我们几个仍在用C++进行编码;C++即将迎来一次升级:C++11(以前被称为C++0x)。最终草案在去年三月获得了C++标准委员会的批准,而最终规范预计将在这个夏天发布。

qq_42815643的博客 2182

错误 C2440

错误 C2440错误 C2440 “初始化”: 无法从“char”转换为“char *” 错误 C2440 “初始化”: 无法从“char”转换为“char *” 从整型强制转换为指针类型要求 reinterpret_cast、C 样式强制转换或函数样式强制转换 错误 C2440 “初始化”: 无法从“char”转换为“char *” 修改方案: 将 “符合模式选项” 改为 “否” ...

鷝翗的博客 1万+

error C2440 无法转换到 AFX_PMSG mfc自定义信号及实现 PostMessage FindWindow

这两天在用自定义信号,期间除了一些问题,看似简单,实际上花了我好长时间。也是因为本身没怎么用过mfc,纯粹是被赶鸭子上架,赶上来的。 奔着分享和记录的目的,希望碰到同样问题的猿们快速解决问题。 首先说一下创建信号量的流程: 1.定义信号量 #define WM_USER_ONSHOW (WM_USER+30) 2.在头文件声明信号处理函数 afx_msg LRESULT OnSho

overlord_bingo的博客 2744

error C2440: “默认参数”: 无法从“const char [17]”转换为“char *”解决方法

首先解释下为什么会报错: 这是因为实参 "babiq"是字符型常量,所以形参要用const型; 1、改写为:void funcView(const char *name = "babiq"); 2、改写为:void funcView(char *name = (char *)"babiq"); 3、最后补充一种,直接调试编译器,保持之前版本兼容性: 把语言->符合模式改为否

zwd866102的博客 3513

vc++深入详解中error c2440的解决方案

最近看孙鑫老师的VC视频讲座,发现用VS2005直接打开他的源代码,可以编译成功。但是如果自己新建个win32项目,自己敲源代码的话,反而编译不了,有如下错误:  error C2440: “=”: 无法从“const char [11]”转换为“LPCWSTR”       代码在VC6中没问题. 因为它的代码没有按可编译为UNICODE版本的方式写,

追忆似水年华————RUSH 4309

编译ERROR C2440

编译ERROR C2440作者:ImMcss 欢迎转载,请以超链接形式保留原文地址。问题:把VC6.0 的工程移植到VC2005上编译出现第一个问题就是: error C2440: static_cast : void (__thiscall CXXXDlg::* )(WPARAM,LPARAM) から LRESULT (__thiscall CWnd::* )(WPARAM,LPA

immcss的专栏 1293

error C2440: ’static_cast’

<br />error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”<br /> 1>        从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast<br />搜索发现为开发平台迁移问题。<br /> 由vc6.0升级至vs2005以上平台均会遇到这情况,原因为<br

stilling2006的专栏 918

用vs2005创建第一个win32程序(附解决error c2731 c2440方法)

我是学习DirectX编程的初学者,对于新安装的vs2005,有一些不熟悉。所以自己在网络上东找找西找找,终于编译成功了自己第一个win32程序。首先自己选用的DirectX教材是《Beginning DirectX9》,就是这本书。 在确保自己具有c++基础上,可以开始进行windows编程了。在28页,我们可以看到怎么编辑win32项目的。首先新建->项目,打开对话框,选择wi

开发游戏,辉煌全中国 2862

error C2440: 'static_cast' 错误的解决方法

问题描述:  在将vc6.0程序转换到vs2005或者vs2008、vs2010时提示:error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CStaticLink::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint)   解决方法:  找到  UNI

#Define 1万+

MFC中 error C2440错误分析及解决方法

wchar_t和TCHAR以及char的使用

qq_45059758的博客 1417

【QT】QT报错:error: C2440: “初始化”: 无法从“const char *”转换为“cv::Formatted *”

用QT编程的时候遇到报错,起初一直以为是配置问题,网上查阅资料并反复实验找出解决方案。 解决方案: 将代码中的print函数注释掉,或者用cout函数,QDebug函数替换。

sazass的博客 2102

错误 C2440 “static_cast”: 无法从“long (__thiscall C*::* )(WPARAM,CView *)”转换为“LRESULT (__thiscall

前言 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2440 “static_cast”: 无法从“long (__thiscall CKMainWnd::* )(WPARAM,CView *)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” opctestclient e:\centerproject\opc\visual c++ opc client example\mainwn...

aoxuestudy的专栏 3793

error C2440: 无法从“void *”转换为“node

从“void*”到指向非“void”

shunlu5586的博客 3746

解决:error C2440: “初始化”: 无法从“initializer list”转换为……

遇到这样一个报错“error C2440: “初始化”: 无法从“initializer list”转换”。出问题的功能是用列表初始化一个结构体数组。因这样写起来很简练,充满诱惑,故还是想结构体实现了一个初始化变量的代码,看起来似乎完美,省去了构造函数的一堆代码,又确保了安全性。数组也省掉了对每个结构体单独赋初值的操作。但是就是无法编译通过。网上提供的解决办法是添加一个初始化列表:看起来似乎可行。但是这个结构体并不是一个单独类型的列表。

Wall of AugusGames 1451

VS2019 错误C2440和E0144以及解决方法

VS2019 错误C2440和E0144以及解决方法

鱼翔浅底的博客 2万+
上一篇: error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
下一篇: error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
死神在世
博客等级 码龄13年 233粉丝 102原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值