- 博客(431)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 总结2017,展望2018
工作的变迁总结个人成长个人反思点滴成就技能学习展望每年的元旦(前后)都是写工作总结的最佳时刻,依照惯例,今年也不能落下!这一天,我们每个人都应停下脚本,放慢思考,回顾自己走过的一年,展望未来的一年。今天是2017年的最后一个工作日,也就在这天,我收到了大BOSS致全体员工的一封信《2018,我们一起创造行业奇迹!》,主旨是对2017年的年度总结以及对2018的展望! 现在借题发挥,回顾一
2017-12-29 22:19:47 9206 4
转载 “DWORD”: 重定义;不同的基类型
在写设备相关的代码时,定义了这样一个枚举enum DEVICE_TYPE{DEVICE_NONE = 0,DEVICE_SPEAKER = 1,DEVICE_MICROPHONE_ = 2,DEVICE_CAMERA_ = 3};这个再正常不过了,但编译时却报了一个莫名其妙的错误: error C2371: “DWORD”: 重定义;不同的基类型真是找了半天才找着原因,你都不知道原
2017-10-17 21:51:23 7798 2
原创 C++类有继承时,析构函数必须为虚函数
虚函数与多态一文中讲了虚函数的用法和要点,但少讲了一点,就是虚函数在析构中的用法,本文就是修复一bug的。C++类有继承时,析构函数必须为虚函数。如果不是虚函数,则使用时可能存在内在泄漏的问题。假设我们有这样一种继承关系: 如果我们以这种方式创建对象:SubClass* pObj = new SubClass();delete pObj;不管析构函数是否是虚函数(即是否加virtual关
2016-12-21 09:24:14 22659 1
原创 带你玩转Visual Studio——调用约定与(动态)库
上一篇文章带你玩转Visual Studio——调用约定__cdecl、__stdcall和__fastcall中已经讲述了__cdecl、__stdcall和__fastcall几种调用约定的主要区别。这一章将进一步深入了解不同调用约定对编译后函数修饰名的影响,及调用约定对库函数的影响。VS设置默认的调用约定上一章已经讲了,C/C++默认的调用约定是__cdecl,那能不能修改这个默认的调用约定呢
2016-09-07 09:13:06 11227 10
原创 带你玩转Visual Studio——调用约定__cdecl、__stdcall和__fastcall
有一定C++开发经验的人一定对”__cdecl、__stdcall、__fastcall”肯定不陌生吧!但你真正理解了吗?是的,我曾在这采了无数个坑,栽了无数个跟头,终于忍无可忍要把它总结一下(虽然我已经有能力解决大部分这种问题了)!什么是调用约定 函数的调用约定,顾名思义就是对函数调用的一个约束和规定(规范),描述了函数参数是怎么传递和由谁清除堆栈的。它决定以下内容:(1)函数参数的压栈顺序,
2016-09-03 21:59:17 27320 3
原创 Java与C++的区别
因为即会C++又懂点Java的缘故,就朋友的邀请,共同合作一个项目——“把一个Java工程的项目转成C++”。这个项目前前后后历时约两周,采了不少坑……现把Java和C++的主要区别总结一个,从中吸取教训。1.定义变量和数组时,Java默认初始化,C++不初始化;在类中,方法中定义变量、动态数组时,Java默认初始化,C++不初始化。 如下Java代码public class Test {
2016-07-04 20:38:14 4473 2
原创 带你玩转Visual Studio——绑定进程调试
上一篇文章带你玩转Visual Studio——单元测试讲了VisualStudio中单元测试的用法。在VC++开发和调试中,有时无法设置断点进去调试(如我曾经遇到过的浏览器插件的开发,因为是浏览器调用开发的插件DLL,所以无法在VS中按F5运行的方式进行断点调试),这时就需要用过绑定进程的方式,进行调试。在要设置判断的地方创建提示框为方便起见,我们直接在main方法中创建对话框来进行调试。
2016-06-02 23:05:48 8207 2
原创 带你玩转Visual Studio——单元测试
上一篇文章带你玩转Visual Studio——性能分析与优化讲了找出性能瓶颈和性能优化相关的技能,在大型企业项目的开发中,性能是固然重要的,而另一个过程——测试也是必不可少的。测试有很多的各类:功能测试、系统测试、白盒测试、黑盒测试、单元测试,在这些测试中单元测试是程序员最经过遇到的。什么是单元测试 所谓单元测试(unit testing),就是对软件中的最小单元进行检查和验证,其一般验证对象
2016-06-02 00:21:16 26703
原创 编译skia时遇到的问题及解决方法
工具要求:1.VS2013,更新至update4以上(这里用的是VS2013 Ultimate版Update5)(这个很重要,不然编译不了,因为skia用了很多C++11的新特性) 2.Python2.7.x 3.google的最新depot_tools工具集 4.skia版本: Date: Tue Dec 15 13:07:21 2015 -0800
2016-05-22 21:03:21 5606 1
原创 带你玩转Visual Studio——性能分析与优化
二八法则适合很多事物:最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的。在程序代码中也是一样,决定应用性能的就那20%的代码(甚至更少)。因此优化实践中,我们将精力集中优化那20%最耗时的代码上,这那20%的代码就是程序的性能瓶颈,主要针对这部分代码进行优化。而性能瓶颈的找出需要借助各种性能分析工具(如VS性能分析工具)的帮助。
2016-05-21 23:24:58 70254 13
原创 带你玩转Visual Studio——VC++的多线程开发
编程思想之多线程与多进程(4)——C++中的多线程一文中讲了VC++的多线程的用法和用例,本文接着这个话题作进一步的讲解:SuspendThread和ResumeThread的用法,线程与同步锁的封装类,及VS中多线程的调试。
2016-05-18 23:55:14 29049
原创 带你玩转Visual Studio——VS2015的新功能和特性
之前写了一系列《带你玩转Visual Studio》的文章,有一段时间没有更新这一系列了。由于项目的需要,工作中的开发环境由VS2010升级至VS2015,现在就说说VS2015相对于VS2010有哪些新特性吧。本系列后续的文章若未特殊说明,均是在VS2015开发环境下进行的。本人安装的版本是Microsoft Visual Studio Enterprise 2015 (Version 14.0.
2016-05-15 21:00:49 46838 1
原创 C++获取系统当前时间(精确到微秒)
获取系统当前时间在调试、日志输出、代码优化时,我们常常需要获得系统的时间。在一些性能要求高的代码优化时,对时间的精确度还比较高。在网上找不高质量的代码,便自己研究了一下,代码如下(能满足跨平台的要求,单位精确到微秒)
2016-05-05 19:02:10 33605 3
原创 说说建站那些事
建站的初衷我之前一直在CSDN上写博客(CSDN博客主页),写了四年。后来觉得一个热爱写作的程序员应该要有一个自己独立网站,于是就有了自己建站的想法。因为建立个人博客网站有以下好处:能更多地了解网站在互联网上运行的主要过程;自己定义网站风格,自己管理网站内容,自己就是最高的管理员;自由发表内容,这个也是有必要的;可自己选择喜欢的独立域名;坚持写作,不断积累,你写的东西将成为自己宝贵的一笔财
2016-04-08 17:51:18 3217
原创 网站建设(5)——博客程序的选择和部署
博客程序,可以自己写一个博客系统,也可以使用开源的博客程序。目前有很多开源的博客程序,如WordPress、 Z-Blog、Emlog、Hexo等。
2016-04-08 12:37:54 3508
原创 网站建设(4)——服务器的选择和购买
建设个人网站的三要素:域名、服务器、博客程序。前面几篇文章我们讲了域名、DNS、CDN,这一篇我们讲讲服务器(也就是你部署网站的空间)。主要内容有:虚拟主机、VPS、云服务器、服务器租用等。
2016-04-07 19:54:38 5166
原创 网站建设(附加1)——域名的(DNS)解析设置
如果你是第一次设置DNS的解析,看到下面的设置选项,是不是很晕?下面将逐一介绍各个设置项的含义,如A记录、AAAA记录、CNAME记录、MX记录、TXT记录、Local DNS、公共DNS等。
2016-04-06 15:13:11 9668
转载 网站建设(3)——CDN及CDN加速原理
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络"边缘"的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。
2016-03-31 23:14:45 14901
原创 网站建设(2)——DNS及DNS解析
DNS(Domain Name System,域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。由域名去找IP地址的查找过程就是DNS的解析,进行DNS解析的服务器叫DNS服务器,而DNS服务器便充当了“翻译官”的角色,将域名翻译成IP地址。
2016-03-29 22:59:27 4103 1
原创 网站建设(1)——域名的类型、选择和购买
域名 域名(英语:Domain Name),又称网域、网域名称,是由一串用点分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。一般我们要访问互联网上的一台主机,就必须要知道它的域名,如https://www.google.com、http://www.csdn.net/等(也就是我们经常在浏览器地址栏中看到的网址的”/”前面的一串字符)。域名
2016-03-26 22:35:23 3611
原创 欢迎来访个人网站——阳光日志
在CSDN写博客写了四年了,感谢大家一直以来对我的关注和支持!看博客、写博客对于我来说已经是工作和学习中的不可或缺的一部分了。对于热爱写博客的我来说,很早就希望有一个自己的干净、自由、独立的空间站点了。经历一个多月的准备,这个想法终于实现了!它就是我刚建立的个人博客站点——阳光日志。在未来一断时间内,技术类的文章我将在CSDN和阳光日志里同步更新,非技术类的文章将只在阳光日志里发布。欢迎大家来访我的
2016-03-22 21:24:24 3626 4
原创 没有验证对象的数字签名——解决方案
由于项目的需要,要安装一个VS2013,遇到“没有验证对象的数字签名”的问题,安装不了。经过不断的尝试终于找到解决方法。环境说明:系统:win7 x64 (Service Pack1,已打补丁到最新) 已安装VS2008、VS2010 Professional。 曾经安装过VS2013、VS2015,但已经被卸载。要安装的版本现要安装VS版本是: Visual Studio Ultimate
2016-01-04 23:27:12 41470 1
原创 挥手2015,笑迎2016
早就想写这一篇文章了,却因为最近总遇到一些糟糕的事情和糟糕的情绪。但雨后总是会有阳光的,人总是要振作起来的!不是吗?作为一个程序猿,应该多做总结。每一个年终总结这一年来的成就和收获,犯过的错误与吸取的教训!并展望自己的未来。 一年的时间弹指一挥间,2015已悄悄从手中流过。这一年,其实也没太大的变化,依然是一个普通的程序猿。就是换了一份工作,从一个说不上大也说不上小的公司来到了一个小公司,依然
2016-01-03 17:48:37 3754 7
原创 Linux下C++的编程——GDB进行程序调试
GDB简介我们在Linux下C++的编程——开偏介绍一文中已经简单介绍了GDB的功能,是类Unix系统的主要调试工具,可进行断点调试,跟踪程序,动态改变执行环境等功能。从一个程序开始调试下面我们就从一个程序开始讲解一下GDB的简单用法。
2015-12-12 16:50:54 10791 2
原创 Linux下C++的编程——开发环境搭建与第一个程序
上一篇文章Linux下C++的编程——开偏介绍中我们已经介绍了GUN、GCC、G++等一些重要的概念,现在应该开始动手实践了!开发工具的安装环境 Distributions版本:CentOS 6.7 Linux内核片:2.6.32-573.3.1.el6.i686一般Linux安装完之后默认就已经安装了GCC(GNU Compiler Collection),你可以查看一下gcc和g++的版本号
2015-12-06 20:40:05 69527 6
原创 Linux下C++的编程——开偏介绍
C++是一个功能强大而又应用广泛的计算机语言,就应用领域而言,几乎无所不在,因为有操作系统的地方就会有C++的存在,热门程序而言,也就仅次于C和Java.而C与C++又有天然的血缘关系。gcc是GNU的C编译器(GNU C Compiler),是GNU Compiler Collection的一部分; g++是GNU的C++编译器(GNU C++ Compiler),也是GNU Compiler Collecti
2015-12-02 21:43:42 24047 5
原创 带你玩转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 74442 2
原创 带你玩转Visual Studio——Property Manager的配制
首先,明白两个概念:Project Property和Property Sheet。 Project Property:又称项目属性,是你当前项目的属性配制,保存在你工程的配制文件中,ProjectName.vcxproj中。Property Sheet:又称属性表,可用于多个工程的属性配制,可以自己创建添加属性配制,也可以使用系统默认的属性表,保存在.props为拓展名的文件中。而属性表(Property S
2015-11-14 22:01:03 13024 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 10639 3
原创 如何给软件开发项目估价?
“兄弟,你看做这样一个软件需要多少钱?” 这估计是所有软件从业人员被问的最多也是最无奈的一个问题。这个问题等同于,“你看装修一个100平米的房子需要多少钱?”。软件开发你不懂,装修你总懂吧,100平米的房子装修从10万到100万均有可能,取决于你找什么级别的设计公司,买什么样的材料,请什么样的施工队……所以,我真的没有办法回答你“做这样一个软件需要多少钱?”的问题。 https://blog.c...
2015-11-12 21:20:05 1024
原创 带你玩转Visual Studio——结局汇总
感谢这一系列文章陆陆续续写了一个月,也差不多可以告一个段落了。感谢读者们一直以来对我关注和支持!现将这一系列文章在这做一个汇总,以方便大家查阅。若是初学者,建议按顺序阅读。
2015-10-29 23:33:09 13429 9
原创 带你玩转Visual Studio——带你理解多字节编码与Unicode码
上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的一个地方,我们对它进行了总结和归纳。本篇文章我们将继续讲解C++开发中容易混淆的另一个概念——多字节字符集与Unicode字符集。多字节字符与宽字节字符char与wchar_t我们知道C++基本数据类型
2015-10-25 22:55:33 42608 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 50858 22
转载 C Runtime Library 的来历
运行时库就是C Run-Time Library,是C而非C++语言世界的概念。取这个名字就是因为你的C程序运行时需要这些库中的函数。C Run-Time Library里面含有初始化代码,还有错误处理代码(例如divide by zero处理)。你写的程序可以没有 math库,程序照样运行,只是不能处理复杂的数学运算,不过如果没有了C Run-Time Library,main()就不会被调用,exit()也不能被响应。因为C Run-Time Library包含了C程序运行的最基本和最常用的函数。到
2015-10-11 17:45:59 8412 1
原创 带你玩转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 22550 2
原创 带你玩转Visual Studio——带你多工程开发
在带你玩转Visual Studio——带你新建一个工程一文中提到一个Solution(解决方案)可以有多个Project(工程),那什么时候需要有多工程呢? 多工程又有什么好处呢?应用场景:当一个项目由多个不同的组件(模块)构成时,为每一个组件创建一个工程,所有的组件工程在同一个解决方案下。 优点:结构清晰,可进行分模块开发,对复杂程序进行解耦
2015-10-06 00:07:47 17705 4
原创 带你玩转Visual Studio——带你管理多种释出版本
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以使编译出的可执行文件或库的性能最高,以便用户很好地使用。 Debug和Release本质上就是两组不同的编译选择配制,各自的默认设置一般不用更改。它们最大的区别在于Release进行了优化,去掉了调试信息,因此Release常用无法进
2015-10-05 14:38:06 10036 3
原创 带你玩转Visual Studio——带你发布自己的工程库
库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。比如你经常使用的STL(Standard Template Library)也是库,有了STL你才能方便地使用std::string、std::cout这些类。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存,被别的程序调用执行。C++的库有两种:静态库和动态库
2015-10-04 23:27:44 20037 12
原创 带你玩转Visual Studio——带你高效开发
VassistX有以下主要功能:**智能提示:**关键字的提示,已有类名、方法名的提示,类成员(成员数据和成员函数)的提示;**代码高亮:**关键字、类名、方法名等用不同的颜色进行高亮,方便代码的阅读;**快速追踪:**声明与实现的快速跳转,.cpp与.h文件的快速切换;**高效查找:**文件名的查找,标识符的查找,标识符补引用的查找;**代码重构:**重命名标识符(变量名、方法名、类名等,这个非常有用),
2015-10-02 00:31:19 42587 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 36091 9
文本编辑器第四版——迷你编辑器(安装文件)
2012-09-23
文本编辑器第三版——文字留痕(安装文件)
2012-08-26
数据结构演示系统(安装程序)
2012-06-03
java连接数据库
2011-09-30
[电脑拆机]谁知道这个模块是什么?
2015-08-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人