自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Time is a choice

即使你进步的再慢,你也在进步!!!!努力吧,向着更加优秀的你前进!!!!!!

  • 博客(35)
  • 收藏
  • 关注

原创 Microsoft Speech SDK 工具类

今天无意中发现了Windows平台下文字转语音的API接口—— Microsoft Speech SDK,就拿过来玩了下,写了一个工具类。 这款sdk似乎功能很多,我只是用了文字转语音的功能,以后有机会的话,再多多发掘一下。1.1 下载地址首先,是下载地址。 https://www.microsoft.com/en-us/download/details.aspx?id=10121进入主页,点击

2017-01-04 00:02:10 3104 2

原创 Windows下,文件(夹)选择/打开对话框的三种创建方式

Windows编程时,常用到打开文件(夹)对话框,选择文件或者多个文件的功能。Windows提供了好几种方式,现在做个总结,也好方便以后的使用。

2017-01-03 20:49:04 11417 1

原创 C++中extern关键字

1. 序言extern是一个关键字,它告诉编译器程序中存在着一个变量或者一个函数,如果在当前编译语句的前面中没有找到相应的变量或者函数,也会在当前文件的后面或者其它文件中定义。因此,extern的功能主要为声明外部有一个可用的函数或者变量(通常,这些变量时在cpp或者c文件中定义的),而且这些变量和函数是全局可见的。2. 现代程序编译流程简要介绍在具体讲述extern之前,觉得十分有必要介绍下现代程

2016-01-20 19:09:22 6148 1

原创 C/C++中的static关键字

1. 序言术语static有着不寻常的历史. 起初,在C中引入关键字static是为了表示退出一个代码块后仍然存在的局部变量。 随后,static在C中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。为了避免引入新的关键字,所以仍使用static关键字来表示这第二种含义。 最后,C++重用了这个关键字,并赋予它与前面不同的第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量

2016-01-20 16:26:05 428

原创 最短路径算法设计与实现(Dijkstra算法和Floyd算法)

1.问题描述和需求分析随着计算机、网络、Android的兴起与发展,人们在出行时越来越离不开计算机的帮助。人们在旅行时越来越需要地图的帮助。在人们查找最佳行程路线时,便涉及了最短路径问题。用户想从A地到B地,如何查找最短路径,最快到达;以及如何在一组地点中找到相互间的最短路径。这其实便是最短路径算法解决的问题。 本文便是围绕最短路径问题,设计并实现Dijstra和Floyd算法。2. 算法介绍2.

2016-01-14 20:16:10 1936

原创 Windows编程MD(d)、MT(d)编译选项的区别

1. 运行时库功能运行时库是程序在运行时所需要的库文件,通常以LIB或DLL形式提供: C运行时库 库文件 Single thread(static link) libc.lib Debug single thread(static link) libcd.lib MultiThread(static link) libcmt.lib Debug multiThre

2016-01-14 19:48:04 1047

原创 C/C++术语知识大杂烩

1. 命名空间创建的每一个类、函数和变量都只能在一定的区域内使用。最大的区域是全局;最小的区域是以 {} 包裹的代码段。 随着程序变得越来越复杂,全局作用域里的东西会越来越多,尤其是在使用外部函数库时。为了防止重名,可以使用命名空间将相关的变量和函数名放置在一个命名空间中,只需要保持空间中的变量名是独一无二的即可。对于系统,只需要确定可数的命名空间名称是独一无二即可。不同命名空间中的变量可以重名,

2015-12-22 17:30:46 612

原创 Visual C++6.0 程序设计从入门到精通(四) - MFC类对象和资源之间的关系

1. MFC类对象和资源的介绍MFC类对象指的是MFC中各种基类的对象,如 CWnd, CToolBar等;而资源指的是用户在客户端所看到的各种窗口界面,包括窗口,各种控件,文档等。2. MFC和资源之间的关系通常,程序不能直接操作用户所能看到的各种窗口、空间等资源,因此,为了达到可以控制资源的目的, MFC为资源建立了相关的类,并且要求用户在创建MFC类对象时,将具体的资源绑定到该资源对应的类对象

2015-12-22 16:35:16 1459

原创 Visual C++6.0 程序设计从入门到精通(三) - MFC的消息机制

1. 引言MFC 系统,乃至Windows 系统,是一个以消息为核心的系统,它将系统中发生的事件看做一个消息,放置在消息队列中,待系统在合适的时机进行处理。因此,理解 MFC 系统的消息机制显得十分重要。因此,本文主要关注 MFC 如何处理消息以及 Windows如何在 MFC 编程中用代码产生消息。1. MFC的消息驱动机制MFC的消息驱动机制在用户和操作系统之间是双向的: 1)操作系统响应应用

2015-12-22 16:11:30 755

原创 Visual C++6.0 程序设计从入门到精通(二) - MFC应用程序的启动和运行机制

1. 全局对象theappMFC 应用程序的启动和运行依赖于应用程序类对象,这个类对象在程序中只能有一个,且是全局的。2. 应用程序类对象的数据成员CWinApp 所包含的数据成员主要用于存放和控制应用程序自身的信息,主要数据成员有: - m_pszAppName : 指定了应用程序名字; - m_hInstance : 标示了应用程序的当前实例; - m_lpCmdLine : 指示一个以

2015-12-22 09:00:57 962

原创 Visual C++6.0 程序设计从入门到精通(一) - MFC中生成类以及生成类相互获取的函数调用

1. MFC的由来及组成AFX由Application Framework技术团队创建。该团队名为AFX小组,用以开发C++对象导向工具给Windows应用程序开发人员使用。其实质是对Windows SDK的函数进行了类的封装,使之前面向C流程的过程式程序设计转变为面向对象的程序设计,用以提高程序的开发效率。在封装的过程中,大部分Windows SDK API被封装进了类中,因此,MFC主要分为两部

2015-12-21 21:50:44 929

原创 VS-Warning&Error处理

Warning:1. Warning C4996warning C4996: '_vsnprintf': This function or variable may be unsafe. ......warning C4996: strcpy was declared deprecated出现这样的警告,是因为VC2005之后的版本中认为 CRT 中的一组函数如果使用不当,可能会产生诸如内存泄露、

2015-12-21 21:27:06 585

原创 行程编码压缩算法

1. 算法说明RLE(Run Length Encoding行程编码)算法是一个简单高效的无损数据压缩算法,其基本思路是把数据看成一个线性序列,而这些数据序列组织方式分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于连续的重复数据快采用的压缩策略是用一个字节(我们称之为数据重数属性)表示数据块重复的次数,然后在这个数据重数属性字节后面存储对应的数据字节本身,例如某一个文件中有如下

2015-12-21 21:20:36 20532

原创 排列组合算法实现

1. 递归算法1.1 全排列:全排列表示把集合中元素的所有按照一定的顺序排列起来,使用 P(n, n) = n! 表示n个元素全排列的个数。 例如:{1, 2, 3}的全排列为: 123; 132; 213; 231; 312; 321; 共6个,即3!=321=6。 这个是怎么算出来的呢? 首先取一个元素,例如取出了1,那么就还剩下{2, 3}。 然后再从剩下的集合中取出一个

2015-12-21 21:12:31 827

原创 Windows下如何查看网络IP与端口

进行socket编程时,好多会遇到某个端口被占用的情况,如果想查看是哪个程序占用某一个端口,或者想看看其他开放的端口,则可以用下面的方法(命令用红色字体):ping网络 查看网络中的两个节点是否联通 ping ip;查看端口状态 在开始——运行中输入cmd,在命令行窗口输入 netstat -an ;看到后面为Listening的端口就是开放的端口,如果要查看跟多信息,可以输入 netst

2015-12-21 20:42:04 12804

原创 探究二维数组

1. 引言对N x M的二维数组来讲,设其数组名为array。指针array指向一个数组,该数组存放的是一系列指针,这些指针分别指向相应的一维数组,而这些数组中存放的才是我们的数据。2. 二维数组声明和定义2.1 静态分配内存int array[3][10]; //定义int array[3][10] = {{0},{0},{0}}; //初始化extern int array[3][10];

2015-12-21 20:26:58 555

原创 C语言中的文件操作

本次详细介绍C下文件的各种API.1. 文件的打开与关闭1)打开文件FILE *fopen( const char * filename,const char * mode);返回文件句柄,非NULl为正确打开。 2)关闭文件int fclose( FILE * stream);例子: FILE * pSrc = fopen("DATA5610.TXT", "r"); if (

2015-12-21 18:08:05 339

原创 排序算法-SelectSort-选择排序

1. 选择排序算法介绍每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。时间负责度为O(n^2)。2. 算法实现2.1 选择排序<由高到低>//type * pArray: 待排序数组指针//int len:数组的长度//typename type:模板库template <typename type

2015-12-21 17:41:45 607

原创 数值交换模板函数

//交换数据template <typename type>void Swap(type * lhs, type * rhs); //lhs = left hand side; rhs = right hand sidetemplate <typename type>void Swap(type * lhs, type * rhs){ type temp = *lhs; *lh

2015-12-21 17:22:11 356

原创 字符串处理-字符串和整数之间的转换

1. 字符串转化为整数由于字符串初始化时,可以用字符进行赋值"ster"或者 'A'经赋值。相对应的,整数字符串,如"89763",或者单个字符,可以直接由整数赋值,如char c=65;,那么,c按照字符的表现可以被识别为A。而且,单个字符在计算机中是以整数的形式进行保存的,所以,在将字符串转换为整数时,需要区别对待。1.1 第一种:字符串为真正意义上的字符串赋值,即字符串上每个字符为 char

2015-12-21 17:18:41 746

原创 筛选法求素数

//输入:数//输出:1->素数// 0->非素数int findPrime(int *number);int findPrime(int *number){ int num = *number; int right = ( *number)/2+1; int i, j; int flag = 1; for (i=2; i<=right; i+

2015-12-21 17:00:11 319

原创 宏定义-#define用法

#define 是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率.并且,宏的替换发生在预编译阶段,不会影响程序的动态执行效率。1. #define 命令剖析1.1 #define的概念 #define 命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。 该命令有两种格式:一

2015-12-21 16:53:05 716

原创 指针-动态数组的建立

一、一维动态数组的建立1.1 malloc 数组的建立: int * p = (int *)malloc(sizeof(int)*n);数组的删除: free(p);1.2 new 数组的建立: int * p = new int[n];数组的删除: delete [] p;二、二维动态数组的建立2.1 malloc 数组的建立:int ** p = (int **)m

2015-12-21 13:07:10 642

原创 搜索算法-二分搜索(折半查找)

1. 二分搜索算法二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。2. 算法过程1)首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子

2015-12-21 12:55:16 523

原创 排序算法-InsertSort-插入排序

1. 插入排序算法介绍有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序算法。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。2. 算法流程插入算法把要排序的数组分成两部分:第一部分包含

2015-12-21 12:49:03 519

原创 GCD&LCM-求最大公约数&最小公倍数

1. 定义 ##最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。 最小公倍数(Least Common Multiple,缩写L.C.M.),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公

2015-12-20 23:31:14 916

原创 链表-单向链表-值传递&地址传递

单向链表的实现,并分析了指针传递过程中出现的一些问题和思考

2015-12-20 23:13:15 2429

原创 动态规划&递归-危险的组合

1. 问题描述有若干个铅盒和铀盒(足量),要求将n(n<=30)个盒子进行排列组合,输出满足至少有三个铀盒相邻的排法的个数。例如输入5,要求输出8。2. 问题分析 说明: 柚盒用1表示,铅盒用0表示,下同。首先,考虑在n-1个盒子已经符合排列要求的情况下,当第n个盒子为1还是为0时,满足条件的排列数. 其情况描述图如图(1)。 对于图(1):当n-1个时满足要求时,如果增加一个盒子n,那么

2015-12-20 22:39:15 941

原创 精确乘幂

1. 算法思想精确乘幂的思想秉承于大数乘法,但其实质仍是大数的相乘。只不过,由于底数可以为小数,相比较于大数相乘,需要处理小数点的问题。但是我们可以将采用分离的思想,记录小数点所在的位数(从右往左数,且从0开始)并去除小数点,先将小数换为大数,求出大数的成绩,再填入小数点。2. 问题描述2.1 问题描述 对一个实数R(0.03. 问题要点在本题中,需要把握的要点有三点: 1)一个n位的整数和一个

2015-12-20 21:37:32 2704

原创 Windows下动态库和静态库的浅要对比分析

1. 动态库和静态库的区别生成阶段:对于静态库函数,函数的代码(接口和实现)全部硬编码进入到lib文件中;而对于动态库,在编译生成过程中会产生一个Lib文件和一个Dll文件,其lib文件与静态库文件不同,在动态库的lib文件中,仅保持函数的接口和索引,而函数的代码实现保存在dll文件中;链接阶段:对于静态库文件,在项目生成exe文件中,程序会将lib文件全部链接到二进制运行文件中;而对于动态库文

2015-12-20 21:15:38 439

原创 Windows下的常见动态库介绍

kernel32.dllMSDN: MSDN中关于kernel的介绍——The main module of the Windows CE operating system. The kernel provides system services for managing threads, memory, and resources。kernel32.dll是Windows9x/Me中非常重要的32

2015-12-20 21:13:20 1860

原创 TAO和ACE在Windows平台下的编译与安装

最近要用TAO和ACE来开发中间件,网上找了好多配置环境的例程,发现不是十分的理想,现在结合自己的配置已经安装步骤,做个简要的安装说明。0. 准备工作0.1 下载源码包源码可以上官网下载,下载链接http://download.dre.vanderbilt.edu/打开链接,如下图: Linux/Unix用户下载tar.gz或者tar.bz2格式;Windows用户下载zip格式。0.2 开发

2015-12-17 18:14:46 1221

原创 大数乘法&除法

1. 大数乘法常见解法:A * B1)利用进位加法器的思想①用B的最低位去乘A的每一位,闭关在计算过程中处理进位,并存储该轮结果;②在用B的次位去乘A 的每一位,计算中间结果,并存储数据;③循环计算B的每一位乘A的每一位的结果,并计算之和。2)计算结果中每一位数出现的个数①依次用B的每一位去乘A中的每一位,但保存的结果不为中间结果,而为个十百千位出现的次数;

2015-03-07 17:27:16 980

原创 C++的三种继承机制以及继承机制对三种访问权限(public, protected, private)的影响

(1)public(公有继承):继承时保持基类中各成员属性不变并出现在派生类中,但基类中private成员被隐藏(不可访问),即基类的公有成员和保护成员被继承到派生类中仍作为派生类的公有和保护成员。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。 而无论派生类的成员还是对象都无法访问基类的私有成员。 

2014-10-29 16:07:10 982

原创 Windows Function Call Convention-Windows函数调用约定

在程序开发中,函数调用是靠栈来实现的,同时,编译器帮助我们做了压栈和恢复堆栈工作,这样我们在调用函数时不需要再进压栈退栈。但是由于存在不同的语言,其调用约定也是多种多样的。这样在调用函数时,我们就需要提前通知编译器,告知其以何种方式编译代码。上图中调用约定,便体现了约定的多样性。而这种通知机制,便是函数调用约定(Function Call Convention)。        函数调用约定,

2014-10-12 10:50:27 712

空空如也

空空如也

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

TA关注的人

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