自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aafengyuan的专栏

且行且学,且学且知

  • 博客(38)
  • 资源 (8)
  • 收藏
  • 关注

原创 在Ubuntu系统上利用Tomcat+Jenkins搭建Android源码编译环境

前言相关知识Ubuntu开机启动Shell脚本TomcatJenkinsJenkins简单配置构建配置步骤下载tomcat相关问题参考前言相关知识Ubuntu开机启动Shell脚本TomcatJenkinsJenkins简单配置构建配置步骤下载tomcat相关问题参考

2017-08-22 20:12:57 1002

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-08-22 19:41:34 315

原创 2016总结

2016总结

2016-11-29 18:46:49 544

原创 Android开发之NDK初体验

1.Ubuntu下搭建NDK开发环境参考博客园中Devin Zhang的博客--Android之NDK开发。博客链接地址:http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html2.根据博客中的步骤一步步操作。但是博客中有几个地方需要注意:1):生成相应.h文件的步骤中有两处需要注意的地方:a.-clas

2014-10-29 11:55:32 723

转载 产生随机数组的方法

问题描述:现要求产生 0~n-1 范围内的 m 个随机整数的有序列表,且不允许重复,m 考虑到 n 的值可能很大,而通常 C/C++ 提供的随机数产生器所能返回的随机数在 [0,RAND_MAX],其中,RAND_MAX 为 0x7FFF。也就是说只有 15 位的随机性。因此,我们需要要有自己的随机数产生器,以便能够返回更多位数的随机数,通常为 30 位。下面的函数可以满足我们的要求:

2013-03-15 11:22:07 4680

转载 STL之标准容器底层实现方式

在STL中基本容器有: vector、list、deque、set、map set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问 set :集合, 用来判断某一个元素是不是在一个组里面,使用的比较少 map :映射,相当于字典 ,把一个值映射成另一个值,如果想创建字典的话使用它好了 底层采用的是树型结构,多数使用平衡二叉树实现 ,查找某一值是常数时间,遍历起

2013-03-15 11:01:39 808

转载 Windows消息机制之二(续)-- windows消息和消息队列

与基于MS - DOS的应用程序不同,Windows的应用程序是事件(消息)驱动的。它们不会显式地调用函数(如C运行时库调用)来获取输入,而是等待windows向它们传递输入。 windows系统把应用程序的输入事件传递给各个窗口,每个窗口有一个函数,称为窗口消息处理函数。窗口消息处理函数处理各种用户输入,处理完成后再将控制权交还给系统。窗口消息处理函数一般是在注册一个窗口的时候指定的。你可以从典

2013-03-11 12:14:04 1774

转载 Windows消息响应机制之五:MFC消息响应机制分析

---- MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,我们在这里,对它的整个消息映射机制进行了系统的分析,可以帮助程序开发人员对MFC的消息映射机制有一个比较透彻的了解。1.引言---- VC++的MFC类库实际上是Windows下C++编程的一套最为流行的类库。MFC的框架结构大大方便了程序员的编程工作,但是为

2013-02-26 16:20:44 889

原创 Windows消息响应机制之四:PostQuitMessage和GetMessage函数

Windows是消息驱动的操作系统。在Windows环境下编程必须熟练掌握Windows消息响应机制。 今天在练习Win32编程时碰到一个关于GetMessage函数的问题。这个问题之前一直没有引起过我的注意,但是今天 在网上搜索发现这个问题很多程序员都跟我一样处于一知半解的状态。 在Win32应用程序的主函数中有一段消息循环收发的代码: while (GetMessage(&Ms

2013-01-07 18:02:55 6930 1

转载 Windows消息响应机制之三:线程与消息队列

当一个线程第一次被创建时,系统假定线程不会用于任何与用户相关的任务。这样可以减少线程对系统资源的要求。但是,一旦该线程调用一个与图形用户界面有关的函数 ( 如检查它的消息队列或建立一个窗口 ),系统就会为该线程分配一些另外的资源,以便它能够执行与用户界面有关的任务。特别是,系统分配了一个THREADINFO结构,并将这个数据结构与线程联系起来。 THREADINFO结构体如下: 1.将

2013-01-07 15:46:33 4912

转载 Windows 消息响应机制之二:消息

队列消息和非队列消息    从消息的发送途径来看,消息可以分成2种:队列消息和非队列消息。消息队列由可以分成系统消息队列和线程消息队列。系统消息队列由Windows维护,线程消息队列则由每个GUI线程自己进行维护,为避免给non-GUI现成创建消息队列,所有线程产生时并没有消息队列,仅当线程第一次调用GDI函数数系统给线程创建一个消息队列。队列消息送到系统消息队列,然后到线程消息队列;非队列消

2013-01-07 12:09:32 3197

转载 如何定义与实现一个类的成员函数的回调函数 .

如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。通过查询资料发现,其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身的指针给其成员函数从而实现程序函数可以访问C++的数据成员。这也可以理解为什么C++类的多个实例可以共享成员函数但是确有不同的数据成员。由于this指针的作用,使得将一个CALLBACK型的成员函数作

2013-01-04 16:24:51 1749

转载 windows消息响应机制之一:消息分析器

《Windows核心编程》中第九章-用户模式线程同步中一个例子用到了Win32界面编程,发现里面有个很奇特的宏定义chHANDLE_DLGMSG,Debug后发现作者其实用到了Windows中的消息分析器,而这种处理方式是我之前在练习Win32编程时一直在找寻的一种消息映射方式。于是到网上搜索到这边Blog。博主分析的非常细致,讲解的十分详细,转载过来作为今后学习借鉴。转载自:http://b

2012-12-27 16:34:59 1618

原创 源文件与模块生成时的文件不同。仍要让调试器使用它吗?

在用 Microsoft Visual C++ 2008 调试程序时,设置的断点竟然无效!如果单步运行,使用F11进入,则弹出对话框,源文件与模块生成时的文件不同。仍要让调试器使用它吗?选择是,可以进入到文件中,但设置的断点是虚的,无法调试。在网上搜罗了一下,终于解决了!解决方法如下,在最上面一排的菜单栏选择工具-> 选项在弹出窗口中选择调试-> 常规 把“要求源文件和

2012-12-06 15:53:22 509

转载 用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现

本文转自:http://www.cnblogs.com/CodeWorkerLiMing/archive/2012/06/14/2548863.html开发板也差不多买了半年了, 以前照着教程用的是软件是ADS,在win7下老是崩溃, 后来才知道ADS早就不提供支持了, ADS的公司怎样怎样了...(此处省略300..)然后我就捣鼓着怎么转到KEIL上来, 具体的例程代码我不会移植, 不过

2012-12-05 23:03:50 1772

原创 计算机大小端

大端模式  所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;           例子:   0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000   0000440: b484 6c4e 004e ed00 00

2012-10-23 13:08:28 2534

转载 Win32线程同步

线程之间通信的两个基本问题是互斥和同步。       (1)线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。        (2)线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使

2012-09-25 22:46:50 3701

转载 fatal error C1083: 无法打开预编译头文件

一、出现此错误首先检查:stdafx.cpp文件上右键——属性,预编译头选“创建”,其它cpp选“使用”。二、如果是采用这样的设置,还是有错误,重新生成解决方案,重新调试。三、实在不行的话,步骤/方法右键点击你创建的项目,选择“属性标签”点击属性,弹出“项目属性页”,在左侧找到以下位置  配置属性 -->  C/C++  --> 预编译头,并选择它:在右边的菜单中选择 “创建/使用预编译头

2012-09-17 17:16:48 32543 9

原创 覆盖,重载,隐藏

覆盖(重写),重载,隐藏这三者的概念很容易混淆,弄清楚这三者的区别与联系是有必要的.覆盖(重写)->Override,重载->Overload,多态->Polymorphis重载->Overload函数名字相同参数不相同(参数个数或参数类型不同)相同作用域virtual关键是可有可无覆盖(重写)->Override函数名字

2012-07-24 11:03:04 661

转载 类静态成员

类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时

2012-07-16 16:51:37 456

原创 2012年第三季度学习计划

//作者:Andy Huang//时间:2012.7.6~2012.10.7//内容:Win32 API编程,UI界面(GDI+,GDI)//期望目标:MP3软件界面//计划以前也写过很多,但是都没有坚持到最后。从2011年7月1日毕业工作至今,刚好整整一年。在这一年的时间里面学会了很多东西,发现了自己很多的不足,感觉自己需要调整好心态脚踏实地的学习。因此,今天将2012年第三季度

2012-07-07 00:20:42 527

原创 似乎又站在了十字路口

引言:成功不是等待机会的降临,而是选择一条正确的路.   曾经有一个很好的哥们和我开玩笑说:上大学以后,电脑废了我的一手好字.现在我自己跟自己开玩笑说:自从毕业以后,社会磨平了我的棱角.其实这只不过是对自己一种堂而皇之的搪塞,而且这样的理论看起来也似乎有些荒谬,但是荒谬的背后似乎又折射出了一种社会现象.写得一手好字是特长,有了电脑之后需要写字的时候确实少了很多,但是电脑是让你放弃写得一手好字的

2012-06-25 21:55:12 597

转载 MFC:拖动无标题窗口的两种方法

有的时候,我们需要自绘窗口的标题,或者隐藏了窗口标题,那么问题来了,这就是怎么拖动无标题的窗口?这个问题的本质便是怎么在窗口的客户区上,拖动鼠标,并且移动窗口。通常状态下,一个窗口只有在标题栏的区域,才会响应鼠标拖动的消息。而在窗口的客户区并不会响应。这样便有了一个方法,就是我们可以欺骗windows,让它误认为鼠标点击窗口客户区时是点击在了标题栏上。有这么个消息,就是WM_NCH

2012-05-14 17:03:26 4075

转载 PreSubclassWindow

PreSubclassWindowPreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。其实,用户要在对话框中使用定制控件,必须用DDX

2012-05-13 14:36:01 604

原创 腾讯面试题--算法学习

今天在CSDN论坛里面看到一篇关于腾讯面试题的帖子.一位网友将他在腾讯面试的题目贴在论坛上讨论,其中一位网友的跟贴写出了算法思路.我觉得很不错,特将其记录下来作为今后学习参考.        题目:        两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i];要求:1.不准用除法

2012-04-09 16:29:00 1262

原创 Windows环境打开文件的方式总结

在Windows环境下打开文件的方式有很多种.下面一一列举1.C语言:函数FILE fopen(const char* path, const char* mode);2.C++语言:fstream类:fstream file;file.open(const char* filename, ios_base::openmode);3.Windows系统API:int _op

2012-04-09 10:08:13 519

转载 《Windows Via C/C++》学习之同步设备I/O与异步设备I/O

这章可就讲设备了。好好想想,其实一个有用的程序都得和设备打交道,这章是相当的重要。可惜我看得不是很透。和设备打交道的方法分为同步和异步。同步就是我调用了函数说要读100个字符后,就站那等着,等到100个字符全读完了再继续往前走。异步就是我调用了函数后,让驱动程序自己读取,我不理他直接接着往前走,直到某个点必须要用那100个字符了,再开始等。1.    先说使用设备的方法。常见的设备

2012-04-01 15:15:52 1145

转载 OVERLAPPED结构与GetOverlappedResult函数

异步I/O调用时,我们会用到OVERLAPPED结构和函数GetOverlappedResult。以前一直对GetOverlappedResult比较困惑,这两天看书和代码才知道这个函数的主要作用不过是将Overlapped返回的结果进行一次简单的分析而已。下面是OVERLAPPED的结构定义:typedef struct _OVERLAPPED {     DWORD  Inte

2012-03-31 11:58:31 12253

原创 使用MFC的CFileDialog实现选择多个文件

CFileDialog openDlg( TRUE, /*bOpenFileDialog为TRUE时为打开文件,为FALSE时为保存文件*/ NULL, NULL, OFN_ALLOWMULTISELECT, /*dwFlags为OFN_ALLOWMULTISELECT表示可以选择多个文件*/);//构建CFielDialog对象时指定了

2012-03-23 11:32:47 9143 2

原创 模板编译模型

《C++Primer》关于模板编译模型有如下说法:    当编译器看到模板定义的时候,它不立即产生代码。只有在看到用到模板时,如调用了函数模板或调用了类模板的对象的时候,编译器才产生特定类型的模板实例。    一般而言,当调用函数的时候,编译器只需要看到函数的声明。类似地,定义类类型的对象时,类定义必须可用,但成员函数的定义不是必须存在的。因此,应该将类定义和函数声明放在头文件中,而普通函

2012-03-23 11:29:22 694

原创 浅谈getchar()函数

一、函数介绍1.函数实现:getchar 由宏实现:#define getchar() getc(stdin)2.函数返回值:getchar有一个int型的返回值, 返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.3.函数功能:当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回

2011-09-21 14:00:59 548

原创 Rose 2003安装问题(vista系统)

我在Vista系统上安装Rose 2003遇到了一系列的问题。首先,软件兼容问题;其次,错误提示问题。通过在网上搜索资料,今天总算是解决了这两个问题。  1、软件兼容问题解决办法:  1.1关掉Vista操作系统的“用户帐户控制”,避免操作系统的软件兼容错误的拦截;1.2然后下载一个破解版的Rose2003,按照上面的破解安装提示进行安装; 注:通过以上方法安装

2010-10-27 16:55:00 640

原创 指针和引用的区别

指针和引用是程序员在设计程序时必不可少的两大“助手”,然而很多时候是不为其利反被其害。今天在这里简单的归纳一下指针与引用的区别  1、非空性的区别:引用在声明时必须赋初始值,而且引用在任何时候都不能为空。若声明一个变量使其指向一个对象,但是变量有时候不指向任何对象,此时应该将变量声明为指针;若声明一个变量,而且能确保此变量始终指向一个对象,则可以将变量声明为引用;  2、可

2010-10-26 11:03:00 397

原创 浅谈sizeof与stelen的区别

sizeof与strlen的概念是很多人到现在都还很模糊的两个概念,今天在一本书上看到了这个知识点,而且总结的很好,现在将其记录下来1、sizeof是一个操作符,而strlen是一个函数;2、sizeof的参数可以是类型名也可以是变量名,而strlen的参数只能是char*,而且还必须是以“/0”作为结束符的char*;3、数组作为参数传给sizeof时依然是数组,而传给str

2010-10-24 10:41:00 1063

原创 内存分配方式

内存的三种分配方式:1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。2. 在栈区分配:相关代码执行时创建,执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中,效率高,但容量有限。3. 在堆区分配:动态分配内存。用new/malloc时开辟,delete/free时释放。生存期由

2010-10-23 15:49:00 436

原创 浅谈const限定符

今天在看《程序员面试宝典》一书时,看到里面有关const与#define的比较一节,突然就想起来课堂上老师曾给我们讲过const限定符。现在将const的一些特性归纳一下:1、在C语言中const可以定义常量、修饰函数参数、修饰函数返回值;2、在C++中除了有C语言中的特性意外还能修饰函数的定义体,定义类中的某个成员函数为恒态函数;3、C默认const为外部链接,而C++中默认cons

2010-10-22 16:29:00 427

转载 螺旋队列算法分析

螺旋队列算法分析螺旋队列的样子如下图:    两大规律:1。螺旋规律(红线)2。奇数平方规律(紫线) 问题描述: 设1的坐标是(0,0),的方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(0,1)。编程实现输入任意一点坐标(x,y),输出所对应的数字!  问题解决:从紫线突破。从图中不难发现,右上角vc=(2

2010-10-21 15:30:00 380

原创 UpdateData()函数的用法

UpdateData()函数的参数是bool类型的参数,当参数为1时,由该函数以下的代码都将控件的值传入到控件对应的变量中;反之,当参数为0时,由该函数以下的代码都将变量的值传入控件界面中。

2010-03-13 19:15:00 622

Android编程入门资料

高清非影印英文文档.对于刚开始学习Android的很有帮助

2014-04-07

Windows核心编程_第五版(英文版)

Windows核心编程是Windows程序员进阶必备书籍.书中详细描述了Windows环境多线程编程,设备I/O,内存管理,异常处理等等

2012-04-12

深入理解计算机系统

要想写出高性能的程序,除了对编程语言熟练掌握以外还必须熟悉计算机系统结构.

2012-04-10

Windows高级调试

一个优秀的程序员除了能编写高质量的代码外还必须熟练掌握程序调试技巧.好的调试技术在开发过程中可以让你事半功倍.<Windows高级调试>这本书是Windows环境开发不可或缺的神兵利器

2012-04-10

Windows驱动开发技术详解

英文原版,如果大家英语功底还行,这本书可以给你很大的帮助,如果英语功底有些欠佳,硬着头皮看也不是很难的。

2011-09-12

Lua程序设计学习与入门的必备资料

Lua本身是以简单优雅为本,着眼于处理那些C不擅长的任务。借助C/C++为其扩展,Lua可闪现无穷魅力。Lua本身完全遵循ANSI C而写成,只要有C编译器的地方,Lua便可发挥她的力量。Lua不需要追求Python那样的大而全的库,太多累赘,反而破坏了她的优美。 语言的优美,来自于使用者自己的感悟。Lua的优雅,也只有使用后才会明白

2011-05-11

80x86汇编语言程序设计教程

这是一本既可以作为汇编初学者的入门教程,也可以是汇编程序员提高的教程。第一部分是基础篇,第二部分是保护模式的开发技术

2010-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除