现在的位置: 首页 > 综合 > 正文

VS2008常见编译错误(总结篇)

2014年01月04日 ⁄ 综合 ⁄ 共 554字 ⁄ 字号 评论关闭

错误1:fatal error C1853: “Debug\mydll.pch”预编译头文件来自编译器的早期版本

项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。
在 VC++ 中,默认的预编译头文件是针对 C++ 的 (stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预编译头。

方法:将少数的不同类文件设为不使用预编译头是比较平衡的做法。

具体:Vs2008  项目-- 属性-- 配置属性—C/C++ -- 预编译头 –创建使用预编译头 – 选择不使用。

错误2:error C2440: “static_cast”: 无法从“void (__thiscall CMyPosDlg::* )(void)

原因:高版本的VS对语言要求更加严格

方法:修改两处--添加返回类型和 传递参数  

消息响应函数声明:LRESULT afx_msg OnMyOffdutyMessage(WPARAM wParam,LPARAM lParam);

消息响应函数定义: 修改返回类型为LRESULT, 程序内部返回 TRUE

LRESULT CPosDlg::OnMyCheckMessage(WPARAM wParam,LPARAM lParam)

{

return TRUE;

}

红色字体为需要添加的。

抱歉!评论已关闭.