visual studio2019开发过程中遇到的问题和有帮助的插件

发布于:2024-12-06 ⋅ 阅读:(120) ⋅ 点赞:(0)

1. 注释中有中文导致报错

C4819	The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss

很诡异的错误,如果使用了中文注释,则会先提示有不支持的字符,再来就是中文注释下面那行声明的变量会找不到,类似下图

在这里插入图片描述

解决

  • 如果使用了中文注释,则C++代码要和中文注释之间要空一行,不然就会报错。
  • 和代码同行的注释不会影响下一行代码

2. 打开一个vs2013或者vs2010等老的项目兼容性

可以直接用文本编辑器打开那个老版本的XXX.sln文件

  • 可以看到一些版本配置信息,类似:
    Microsoft Visual Studio Solution File, Format Version 12.00
    # Visual Studio 2013
    VisualStudioVersion = 12.0.21005.1
    MinimumVisualStudioVersion = 10.0.40219.1
    

感谢: VS2019 Choose Old Platform Toolset(ex.VS2013 v120,VS2010 v100) can not use some Properties->Property Pages setting(ex.Debugging,VC++ Directories,C/C++,Linker)

  • 在用vs2019打开一个vs2013项目的.sln文件时,如果弹出一个提示框,说让你更新,一定选择不更新,不然这个项目会被卸载,因为环境不支持
  • 如果不小心选错了,可以删除这个解决方案文件夹里的.vs的隐藏目录,再打开visual studio2019就会重新弹出对话框进行选择了

如下:
在这里插入图片描述

正确操作:
在这里插入图片描述

在这里插入图片描述

3. LNK2019 unresolved external symbol main referenced in function __tmainCRTStartup

LNK2019	unresolved external symbol main referenced in function __tmainCRTStartup	test_MWMath	I:\MwmathforScansys_x64\test_MWMath\MSVCRTD.lib(crtexe.obj)	1	


LNK2019	unresolved external symbol main referenced in function __tmainCRTStartup	 XXXX_MSVCRTD.lib(crtexe.obj)	1	

4. image watch插件/扩展使用

这个插件

  • 主要是支持opencv的图像类型的,cv::Mat, cv::Mat_<>, CvMat, _IplImage
  • 如果是unsigned int *image这样用原始的c数组表示的矩阵头指针,则需要转换一下变成opencv的Mat相关的类型才可以进行查看

具体使用

  1. visual studio上方工具栏,扩展(X)->管理扩展(M)弹出下面的窗口,输入Image watch点击等待即可在这里插入图片描述
  2. 提示关闭visual studio后开始配置,关闭后就会显示以下界面,等着然后点Modify(也就是允许扩展对visual studio进行修改)
    在这里插入图片描述
  3. 安装好之后,就可以在视图(V)->其他窗口->Image watch看到有这个插件选项了
    在这里插入图片描述
  4. debug过程中,opencv的Image类型会有一个放大镜🔍一样的图标,点击就会提示让你在ImageWatch中查看。 opencv里的图像单通道mat一般是CV_8U1,也就是unsigned char类型
    在这里插入图片描述