监视变量显示未定义标识符:
VS2012在编译的时候采用了较快的编译模式,所以有些变量就显示未定义了。
解决方案: 项目->属性->c/c++->优化->改为禁用/OD 重新编译就可以了。'scanf': This function or variable may be unsafe. Consider using scanf_s instead
这种错误,这是新版vc库添加的警告因为微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患。
解决方案: 项目 -> 属性 -> C/C++ -> 预处理器 ->预处理器定义:添加 _CRT_SECURE_NO_DEPRECATE发布的程序在其他电脑上无法运行
解决方案: 使用VS2010编译的程序在windows xp中运行时,经常会出现找不到相关的DLL文件,我们可以使用静态编译的方法把这些运行依赖文件打包到*.exe中来,以减少对环境的依赖。 一般可以配置以下两项: (1)项目 -> 属性 -> 配置属性 -> 常规 -> MFC的使用 :在静态库中使用MFC。 (2)项目 -> 属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行库 :多线程(/MT)。
工具菜单下没有外部工具(VS2008遇到的)
解决方案:
工具 -> 自定义 -> 命令 在左边的一栏中选择工具,然后在右边的一栏中找到外部工具,拖动到最上面的菜单里。调试时加载符号
解决方案:
工具 -> 选项 -> 调试 -> 符号 取消MicroSoft符号服务器的勾选修改默认栈的大小
#pragma comment(linker, "/STACK:102400000,102400000")
使用VS2010以后的版本创建C++窗体程序
VS2010以及以前的版本,创建项目时都可以在CLR下找到“Windows窗体应用程序”的项目模板,但是VS2012以后的版本就没这么方便了。可以通过打开旧版本的项目来修改,也可以像下面这样操作:
这里就以VS2015为例,打开VS2015如下图所示:
众所周知,WinForm需要.NET的支持。因此我们需要建立一个CLR空项目,步骤如下:
①新建项目
②选择CLR空项目
③结果
添加WinForm头文件:
①右键点击头文件,添加新建项
②选择UI的Windows窗体
③结果
注意,在第三步结果这里,可能会(请注意!是可能,反正在我的电脑上发生了)报错:若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误。
这里可以不必理会,请按照步骤继续走。
这里出现了大家所熟知的窗体设计器,但是还是没能允许,因为没有主函数。需要继续进行如下操作:
①编写主函数代码
代码这里给出了,大家注意修改对应的命名空间名称及窗体类名称。
当你走到此处时,保存修改,将那个报错的窗口关掉,然后重新打开,你就会发现,是下面这样的:
一切OK了!庆祝一下
②点击“本地Windows调试”,结果:
而后:
我们发现程序可以成功编译运行了,但是还留着一个黑乎乎的控制台。接下来,我们就通过设置取出这个控制台:
①右键点击项目,设置项目属性
②子系统改为窗口
③入口函数设置为main
④再次执行,黑框就不见了
VS2008中编译通过,但调试时出现“未使用调试信息生成二进制文件”的问题
问题在于,没有生成调试文件pdb,所以无法调试。
要让项目生成pdb文件,需要更改:
项目属性,configuration properties->linker->Generate Debug Info 从 no 改为 yes
但这样还是不够的,还需要更改:
项目属性,configuration properties->c/c++->debug information format为/ZI
项目属性,configuration properties->c/c++->optimization为Disabled
因为为了生成这个文件,需要设定debug信息的格式并关掉O2,还要更改linker生成调试信息的开关