当前位置:   article > 正文

vs2015工程向vs2019工程迁移碰到的各种问题_vs2015工程转为2019

vs2015工程转为2019

把一个C++工程,从vs2015工程向vs2019工程迁移的过程中,碰到了好多问题,记录如下:


1.   ConfigINI.cpp(85,55): error C2664: “std::string &trim(std::string &)”: 无法将参数 1 
    从“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”转换为“std::string &”
    ConfigINI.cpp(85,45): message : 非常量引用只能绑定到左值
    ConfigINI.cpp(24,9): message : 参见“trim”的声明
    解决办法是增加一个强制类型转换:entry.name = trim((string&)str.substr(0,fIndex));
    
2.  还有一些过期的func要使用,编译选项中增加:/D _CRT_SECURE_NO_WARNINGS。
  
3.  error C3861: “access”: 找不到标识符。access函数在windows中是_access()
  替换一下就好。
  
4.    下面这种打印的表达方式也不被允许了:
    #if 1
    #define     VosPrint(fmt,args...)  do{ \
                char _PrtBuf[1000]; \
                sprintf(_PrtBuf,":" fmt , ## args); \
                Log_MsgLine("vos.log",_PrtBuf); \
                }while(0)
    #else
    #define     VosPrint(fmt,args...)  
    #endif
    重新找一个logger模块,新建过滤器,包括logger子模块源代码进来。
   5. 此外sprintf要改为snprintf。strcpy要改为strcpy_s。
    改动还是比较多,感觉就是ISO的c++ 14标准变得更严格了,这也是好事,避免可能的出错。
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/418478
推荐阅读
相关标签
  

闽ICP备14008679号