zoukankan      html  css  js  c++  java
  • Visual Studio蛋疼问题解决(1)

    监视变量显示未定义标识符:

      VS2012在编译的时候采用了较快的编译模式,所以有些变量就显示未定义了。 
      解决方案: 
      项目->属性->c/c++->优化->改为禁用/OD 
      重新编译就可以了。

    'scanf': This function or variable may be unsafe. Consider using scanf_s instead

      这种错误,这是新版vc库添加的警告因为微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以为截止符的,如果搜索不到,容易出现字符串越界所有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生成调试信息的开关

  • 相关阅读:
    Python(一)-基础不牢,地动山摇
    微信公众号开启企业付款到用户
    CSS多行显示省略号
    angular service自定义返回
    CSS input radio和checkbox样式
    angular微信支付url未注册
    angular+ionic的兼容性问题
    js 字符串和16进制的互相转换
    js循环变量赋值
    CSS 两层实现垂直居中(外层固定宽高,内层文本不定行数)
  • 原文地址:https://www.cnblogs.com/dramstadt/p/5880875.html
Copyright © 2011-2022 走看看