带你玩转Visual Studio
文章平均质量分 96
本系列是从事C++开发工作一年半以来对VS用法的经验和总结,主要内容有:1、Windows下Visual Studio在C++开发方面的功能和使用方法;2、用Visual Studio进行C++的高效开发;3、C++编译、链接的一些方法,以及部分跟编译相关的Window技术。
陌尘(MoChen)
程序员码龄: 14+年
IT从业经验: 10+年
曾任职单位: 北大方正,阿里巴巴
出版的书籍: 《人人都懂设计模式》、《Python 設計模式》
擅长的语言: C++/Python/JavaScript
涉及的技术: 电子书SDK,PC户端开发,Linux应用开发,前端开发
涉及的行业: 电子出版,在线教育,文档协调,智能机器人
展开
-
带你玩转Visual Studio——调用约定与(动态)库
上一篇文章带你玩转Visual Studio——调用约定__cdecl、__stdcall和__fastcall中已经讲述了__cdecl、__stdcall和__fastcall几种调用约定的主要区别。这一章将进一步深入了解不同调用约定对编译后函数修饰名的影响,及调用约定对库函数的影响。VS设置默认的调用约定上一章已经讲了,C/C++默认的调用约定是__cdecl,那能不能修改这个默认的调用约定呢原创 2016-09-07 09:13:06 · 11300 阅读 · 10 评论 -
带你玩转Visual Studio——调用约定__cdecl、__stdcall和__fastcall
有一定C++开发经验的人一定对”__cdecl、__stdcall、__fastcall”肯定不陌生吧!但你真正理解了吗?是的,我曾在这采了无数个坑,栽了无数个跟头,终于忍无可忍要把它总结一下(虽然我已经有能力解决大部分这种问题了)!什么是调用约定 函数的调用约定,顾名思义就是对函数调用的一个约束和规定(规范),描述了函数参数是怎么传递和由谁清除堆栈的。它决定以下内容:(1)函数参数的压栈顺序,原创 2016-09-03 21:59:17 · 27588 阅读 · 3 评论 -
带你玩转Visual Studio——绑定进程调试
上一篇文章带你玩转Visual Studio——单元测试讲了VisualStudio中单元测试的用法。在VC++开发和调试中,有时无法设置断点进去调试(如我曾经遇到过的浏览器插件的开发,因为是浏览器调用开发的插件DLL,所以无法在VS中按F5运行的方式进行断点调试),这时就需要用过绑定进程的方式,进行调试。在要设置判断的地方创建提示框为方便起见,我们直接在main方法中创建对话框来进行调试。原创 2016-06-02 23:05:48 · 8233 阅读 · 2 评论 -
带你玩转Visual Studio——单元测试
上一篇文章带你玩转Visual Studio——性能分析与优化讲了找出性能瓶颈和性能优化相关的技能,在大型企业项目的开发中,性能是固然重要的,而另一个过程——测试也是必不可少的。测试有很多的各类:功能测试、系统测试、白盒测试、黑盒测试、单元测试,在这些测试中单元测试是程序员最经过遇到的。什么是单元测试 所谓单元测试(unit testing),就是对软件中的最小单元进行检查和验证,其一般验证对象原创 2016-06-02 00:21:16 · 26917 阅读 · 0 评论 -
带你玩转Visual Studio——性能分析与优化
二八法则适合很多事物:最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的。在程序代码中也是一样,决定应用性能的就那20%的代码(甚至更少)。因此优化实践中,我们将精力集中优化那20%最耗时的代码上,这那20%的代码就是程序的性能瓶颈,主要针对这部分代码进行优化。而性能瓶颈的找出需要借助各种性能分析工具(如VS性能分析工具)的帮助。原创 2016-05-21 23:24:58 · 70536 阅读 · 13 评论 -
带你玩转Visual Studio——VC++的多线程开发
编程思想之多线程与多进程(4)——C++中的多线程一文中讲了VC++的多线程的用法和用例,本文接着这个话题作进一步的讲解:SuspendThread和ResumeThread的用法,线程与同步锁的封装类,及VS中多线程的调试。原创 2016-05-18 23:55:14 · 29252 阅读 · 0 评论 -
没有验证对象的数字签名——解决方案
由于项目的需要,要安装一个VS2013,遇到“没有验证对象的数字签名”的问题,安装不了。经过不断的尝试终于找到解决方法。环境说明:系统:win7 x64 (Service Pack1,已打补丁到最新) 已安装VS2008、VS2010 Professional。 曾经安装过VS2013、VS2015,但已经被卸载。要安装的版本现要安装VS版本是: Visual Studio Ultimate原创 2016-01-04 23:27:12 · 41582 阅读 · 1 评论 -
带你玩转Visual Studio——VS2015的新功能和特性
之前写了一系列《带你玩转Visual Studio》的文章,有一段时间没有更新这一系列了。由于项目的需要,工作中的开发环境由VS2010升级至VS2015,现在就说说VS2015相对于VS2010有哪些新特性吧。本系列后续的文章若未特殊说明,均是在VS2015开发环境下进行的。本人安装的版本是Microsoft Visual Studio Enterprise 2015 (Version 14.0.原创 2016-05-15 21:00:49 · 46898 阅读 · 1 评论 -
带你玩转Visual Studio——VS2010断点进不去解决方法
按F9断点变灰,Debug调试时进不去断点,提示:The breakpoint will not currently be hit. The source code is different from original version. 大概的意思是说当前的代码与执行文件对应版本的代码不同,这就需要重新编译代码。解决方案:1.rebuild工程。2.在工程的代码文件(.cpp或.h)适当的位置,敲原创 2015-01-20 19:04:17 · 22847 阅读 · 4 评论 -
带你玩转Visual Studio——命令行编译C/C++程序
打开安装目录下的*VSDIR*\VC\bin可以看到一系列的可执行程序.exe和批处理文件,这些就是VS2010构建、编译、链接时要用到的工具。看一下几个主要的工具:cl.exe:编译程序link.exe:链接程序lib.exe:加载lib库的程序nmake.exe:用makefile进行构建、编译的工具原创 2015-11-15 11:10:12 · 74689 阅读 · 2 评论 -
带你玩转Visual Studio——Property Manager的配制
首先,明白两个概念:Project Property和Property Sheet。 Project Property:又称项目属性,是你当前项目的属性配制,保存在你工程的配制文件中,ProjectName.vcxproj中。Property Sheet:又称属性表,可用于多个工程的属性配制,可以自己创建添加属性配制,也可以使用系统默认的属性表,保存在.props为拓展名的文件中。而属性表(Property S原创 2015-11-14 22:01:03 · 13063 阅读 · 1 评论 -
带你玩转Visual Studio——incremental linking(增量链接)的作用
今天编译一个C++程序时,报了一个奇怪的错误(之前是好好的):1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corruptGoogle上搜了一下解决方案:把Project Properties -> Configuration Properties -> Linker (Gener原创 2015-11-14 00:23:50 · 10758 阅读 · 3 评论 -
带你玩转Visual Studio——结局汇总
感谢这一系列文章陆陆续续写了一个月,也差不多可以告一个段落了。感谢读者们一直以来对我关注和支持!现将这一系列文章在这做一个汇总,以方便大家查阅。若是初学者,建议按顺序阅读。原创 2015-10-29 23:33:09 · 13474 阅读 · 9 评论 -
CString与string、char*的区别和转换
我们在C++的开发中经常会碰到string、char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆。下面详细介绍这三者的区别、联系和转换:各自的区别char*:char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来表示一个字符串,功能与字符串数组原创 2014-03-01 20:34:42 · 41067 阅读 · 5 评论 -
带你玩转Visual Studio——带你理解多字节编码与Unicode码
上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的一个地方,我们对它进行了总结和归纳。本篇文章我们将继续讲解C++开发中容易混淆的另一个概念——多字节字符集与Unicode字符集。多字节字符与宽字节字符char与wchar_t我们知道C++基本数据类型原创 2015-10-25 22:55:33 · 42952 阅读 · 18 评论 -
带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑
Windows下**C Runtime Library**是微软对C标准库函数的实现,这样每个程序可以直接使用C标准库的函数;后来出现了C++,于是又在C Runtime Library基础上开发了**C++ Runtime Library**,实现了对C++标准库的支持。因此现在Windows下的C/C++运行时库既包含子C标准库,也包含了C++标准库。如果你安装了VS2010,在安装目录下的VC\crt\src下原创 2015-10-13 20:06:47 · 51030 阅读 · 22 评论 -
非MFC工程中使用MFC库
需求说明C++工程的类型有很多,从VS(或VC)可以看到常见的有:Win32 Console Application、MFC Application、Win32 Project等。在创建MFC工程时,通过IDE的向导会自动帮我们创建相应的类文件和包含必需的头文件,但有时候我们需要在非MFC工程中包含MFC的库。至于为什么会有这个需要,为何不在一开始就创建MFC工程呢?可能有两种原因:1.在MFC工原创 2014-11-26 23:26:47 · 10122 阅读 · 5 评论 -
带你玩转Visual Studio——带你理解微软的预编译头技术
所谓头文件预编译技术,就是把一个工程(Project)中常用的一些头文件(如标准头文件Windows.h、Afxwin.h等,也可以是自己定义的头文件)包含在stdafx.h中,并对stdafx.h预先编译(在所有的.cpp文件编译之前进行编译),得到编译结果.pch文件(默认名称为ProjectName.pch),后期该工程在编译其它.cpp文件时不再编译stdafx.h中的内容(即使include了它),仅仅使用原创 2015-10-10 22:31:50 · 22613 阅读 · 2 评论 -
带你玩转Visual Studio——带你多工程开发
在带你玩转Visual Studio——带你新建一个工程一文中提到一个Solution(解决方案)可以有多个Project(工程),那什么时候需要有多工程呢? 多工程又有什么好处呢?应用场景:当一个项目由多个不同的组件(模块)构成时,为每一个组件创建一个工程,所有的组件工程在同一个解决方案下。 优点:结构清晰,可进行分模块开发,对复杂程序进行解耦原创 2015-10-06 00:07:47 · 17766 阅读 · 4 评论 -
带你玩转Visual Studio——带你管理多种释出版本
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以使编译出的可执行文件或库的性能最高,以便用户很好地使用。 Debug和Release本质上就是两组不同的编译选择配制,各自的默认设置一般不用更改。它们最大的区别在于Release进行了优化,去掉了调试信息,因此Release常用无法进原创 2015-10-05 14:38:06 · 10072 阅读 · 3 评论 -
带你玩转Visual Studio——带你发布自己的工程库
库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。比如你经常使用的STL(Standard Template Library)也是库,有了STL你才能方便地使用std::string、std::cout这些类。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存,被别的程序调用执行。C++的库有两种:静态库和动态库原创 2015-10-04 23:27:44 · 20078 阅读 · 12 评论 -
带你玩转Visual Studio——带你高效开发
VassistX有以下主要功能:**智能提示:**关键字的提示,已有类名、方法名的提示,类成员(成员数据和成员函数)的提示;**代码高亮:**关键字、类名、方法名等用不同的颜色进行高亮,方便代码的阅读;**快速追踪:**声明与实现的快速跳转,.cpp与.h文件的快速切换;**高效查找:**文件名的查找,标识符的查找,标识符补引用的查找;**代码重构:**重命名标识符(变量名、方法名、类名等,这个非常有用),原创 2015-10-02 00:31:19 · 42639 阅读 · 14 评论 -
带你玩转Visual Studio——带你了解VC++各种类型的工程
Visual C++各种工程类型:ATLATL ProjectCLRClass LibraryCLR Console ApplicationCLR Empty ProjectWindows Forms ApplicationWindows Forms Control LibraryGeneralEmptyCustom WizardMakefile ProjectMFCMFC Act原创 2015-09-30 00:48:26 · 36168 阅读 · 9 评论 -
带你玩转Visual Studio——带你新建一个工程
接着上一篇文章带你玩转Visual Studio——开篇介绍继续讲这个主题,现在我们从创建一个新的工程开始。一步一步创建项目依次选择菜单:File\New\Project,打开New Project对话框。<1>.选择项目类型:Win32 Console Application;<2>.填写工程名(Project Name):TestProject(可以给它取一个任意你想要的名字);<3>.选择原创 2015-09-23 23:33:23 · 86284 阅读 · 21 评论 -
带你玩转Visual Studio——开篇介绍
开篇之前,先唠叨几句本人从事C++开发工作一年半,总想就C++开发方面写点东西。写什么呢?想了一下还是写点跟开发密切相关的吧,要说跟开发最密切相关的那莫过于就是开发工具了,也就是常常说的集成开发环境(IDE)。 这一年多从事的是C++的跨平台开发,在Linux和Windows下都开发过,但主要还是在Windows下进行开发(一般会在Windows下开发,多个平台下编译),因为Windows下有强大好原创 2015-09-22 23:12:27 · 55522 阅读 · 36 评论