vs C++ + MFC项目统一升级升级目标:使用C++20标准 使用最新windowsSDK 使用最新平台工具集(vs2019)
2021/12/11 7:21:35
本文主要是介绍vs C++ + MFC项目统一升级升级目标:使用C++20标准 使用最新windowsSDK 使用最新平台工具集(vs2019),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、vs C++ + MFC项目统一升级
升级目标:使用C++20标准 使用最新windowsSDK 使用最新平台工具集(vs2019)
2、无法匹配对应的MFC库
解决方案:vs2019安装中勾选 支持 v142的MFC库
3、解决“错误 D8016 “/ZI”和“/Gy-”命令行选项不兼容 ”问题
https://blog.csdn.net/LYJ_viviani/article/details/51487877
4、解决 “错误 D8016 “/Gm”和“/std:c++20”命令行选项不兼容”
C/C++ -->代码生成---->"启用最小重新生成" 选择 否
5、bcg库编译
解决方案: 找到 BCGControlBar Pro 28 版本的库,升级到 v142 在做编译
6、函数接口隐式转换检查报错
使用如下方式:
dynamic_cast :有父子继承关系的强转
reinterpret_cast : 指针之间的强转
static_cast :基本数据类型强转 static_cast<int>()
const_cast :强制转换去除 const修饰
7、 双目运算符 ? :
条件表达式的result类型要保持一致
8、bcg库 BCGCBProInc.h 中 设置了自动链接bcg库的操作,在编译其他依赖bcg库时要在
预处理器定义中 加入 _BCGCB_DISABLE_AUTOLINK_
9、error LNK2026: 模块对于 SAFESEH 映像是不安全的
解决方法:
1.打开该项目的“属性页”对话框。
2.单击“链接器”文件夹。
3.单击“命令行”属性页。
4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。
10、错误 C3848 具有类型“const youth_GeoAlgorithm::setcmp”的表达式会丢失一些 const-volatile 限定符以调用“bool youth_GeoAlgorithm::setcmp::operator ()(const GIS_DoublePoint &,const GIS_DoublePoint &)”
解决方法: 在仿函数setcmp::operator ()(const GIS_DoublePoint &,const GIS_DoublePoint &) 后面加入const 修饰
11、 error C2039: “DOMDocument”: 不是“MSXML2”的成员
解决方法:
CreateInstance(__uuidof(MSXML2::DOMDocument),NULL ,CLSCTX_INPROC);
改为
CreateInstance(__uuidof(MSXML2::DOMDocument60 ),NULL ,CLSCTX_INPROC);
12、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2664 “std::pair<CGisVetex *,CGisPath *> std::make_pair<CGisVetex*,CGisPath*>(_Ty1 &&,_Ty2 &&) noexcept(<expr>)”: 无法将参数 1 从“CGisVetex *”转换为“_Ty1 &&” ToolCabinet E:\jinhua_diaodu_Proj\DLL_PROJECT\ToolCabinet\DijkstraAlgorithm.cpp 121
解决方案:
m_Paths.insert(make_pair<CGisVetex*, CGisPath*>(reinterpret_cast<CGisVetex*&&>(pVetex),reinterpret_cast<CGisPath*&&>(pNewPath)));
13、c4596成员中的非法限定名
解决方案:
举例:CDevExtProp& CDevExtProp::operator = (const CDevExtProp &Temp);
定义的成员函数已经在类里了,所以不需要再次声明作用域,把CDevExtProp::去掉即可。
14、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2679 二元“=”: 没有找到接受“CIndMachine”类型的右操作数的运算符(或没有可接受的转换) ModelCore E:\jinhua_diaodu_Proj\DLL_PROJECT\ModelCore\IndMachine.cpp 99
解决方案: 申明和函数返回类型一样的变量做赋值,然后在转换成*this
15、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2664 “INT_PTR CArray<CModelShape::CPoint,CModelShape::CPoint &>::Add(ARG_TYPE)”: 无法将参数 1 从“CModelShape::CPoint_tpe<float>”转换为“ARG_TYPE” ModelCore E:\jinhua_diaodu_Proj\DLL_PROJECT\ModelCore\Shunt.cpp 77
解决方案: 构造临时变量赋值,在传入Add函数中
16、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2653 “MSXML2”: 不是类或命名空间名称 ManagePowerGridLevel E:\jinhua_diaodu_Proj\DLL_PROJECT\cimsvgImport\ManagePowerGridLevel\code\CommonFuncs.h 25
解决方案:
#ifndef _MSXML14_
#define _MSXML14_
#import <msxml6.dll>
using namespace MSXML2;
#endif
17、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2783 “void std::swap(_Ty &,_Ty &) noexcept(<expr>)”: 未能为“_Enabled”推导 模板 参数 AutoRouting C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\utility 81
18、error LNK2019: 无法解析的外部符号 __vsnwprintf,该符号在函数 "long __stdcall StringVPrintfWorkerW...
答案就是链接:legacy_stdio_definitions.lib 这个lib即可
这篇关于vs C++ + MFC项目统一升级升级目标:使用C++20标准 使用最新windowsSDK 使用最新平台工具集(vs2019)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升