自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 Windows 8.1 TTS API

在windows8 时代,应用程序使用TTS功能需要使用一个TTS web service。这样的缺点就是必须在确保联网的情况下才能使用TTS功能。Windows8.1中加入了TTS(Text-To-Speech) API。使用方式如下:先创建一个MediaElement:然后代码中调用:using Windows.Media.SpeechSynthes

2013-10-15 14:56:41 3593

原创 Win8 metro app 播放来自网络语音文件常见问题

在Metro程序中播放多媒体文件,可使用MediaElement来播放。在xaml文件中添加如下一行: 如果是相应控件来播放声音很容易,只需要给source设置一个uri,然后play playSound.Source = new Uri("http://xxxxxxx/music.mp3", UriKind.Absolute); playSound.AutoP

2013-08-20 10:53:07 1162

转载 Windows下Critical Section、Event、Mutex、Semaphores区别

临界区(Critical Section)    保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。       临界区包含

2013-07-17 17:50:04 839

转载 Event和Mutex区别

事件事件是用来同步地位不相等的线程的,事件可以用来使一个线程完成一件事情,然后另外的线程完成剩下的事情。事件的使用很灵活,自动事件的激发态是由人工来控制的,而Mutex在释放(releaseMetux)后就一直处于激发态,直到线程WaitForSingleObject。事件可以用来控制经典的读写模型和生产者和消费者模型。相应的方式为,生成者等待消费者的消费,再消费者消费完后通知生产者进行生产。

2013-07-17 17:49:13 940

转载 内存映射文件

Windows提供了3种进行内存管理的方法: • 虚拟内存,最适合用来管理大型对象或结构数组。 • 内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行的多个进程之间共享数据。 • 内存堆栈,最适合用来管理大量的小对象。  内存映射文件内存映射文件与数据视图的相关性页文件支持的内存映射文件使用内存映射文件在进程之间共享数据

2013-07-15 16:43:54 934

转载 二叉树的深度优先遍历和广度优先遍历

深度优先遍历,也就深入的遍历,沿着每一个分支直到走到最后,然后才返回来遍历剩余的节点。二叉树不同于图,图需要标记节点是否已经访问过,因为可能会存在环,而二叉树不会出现环,所以不需要标记。那么,我们只需要一个栈空间,来压栈就好了。因为深度优先遍历,遍历了根节点后,就开始遍历左子树,所以右子树肯定最后遍历。我们利用栈的性质,先将右子树压栈,然后在对左子树压栈。此时,左子树节点是在top上的,所以可以先

2013-07-03 15:25:45 31898 1

转载 Socket编程指南及示例程序

写的非常好,转载以便今后温故。例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。代码的压缩包位置是http://www.blogjava.net/Files/wxb_nudt/socket_src.rar。1         前言在一些常用的编程技术中,So

2013-06-28 16:39:58 1015

原创 清理数据库日志(log)文件

最近遇到个问题,一台保存数据库的服务器硬盘满了,找了半天发现时存log的ldf文件太大了,好几百G。C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data由于本人从来没有数据库工作相关经验,就只能上网找解决方案。这个文件存的是所有操作的日志,没有什么作用,可以清除。但是不能把这个文件直接删掉。首先装一个 SQL se

2013-05-27 17:03:48 1115

转载 C语言中的单精度双精度数的有效位数

#include "stdio.h" #include "conio.h"void main() { printf("%.20f\n",0.1234567890123456789f); getch(); }观察在VC6,WinTC中的运行结果,可能是0.1234567891043281560000.12345678901234567700

2013-05-04 14:34:18 2693

转载 为什么要加#include "stdafx.h"

所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。编译器通过一

2013-04-04 00:06:18 643

原创 C#中一个关于format函数问题的解决方法

今天碰到一个问题:int number = 10;string str1= string.Format("{0,-10:P2}", number);预期得到str = “10 %”; 中间有空格。但是在我这就是10%不带空格。后来发现是和电脑的region有关。如果format是chinese就没有空格,如果是us就有空格。为了解决不统一的问题可以修改如下:

2013-03-20 15:46:06 809

原创 stl vector

// stl-vector.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;void useVector(){ vector aa; int num = 0; aa.reserve(11

2013-03-06 17:31:36 630

原创 一个简单的多线程例子-临界区

// Critical.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;static int nGloble = 0;CRITICAL_SECTION gcs;DWORD WINAPI R

2013-03-05 15:11:14 1305

原创 一个简单的多线程例子-互斥量

// Mutex.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;DWORD WINAPI Func1Proc(LPVOID lpParam);DWORD WINAPI Func2Proc(LP

2013-03-05 14:26:41 888

转载 __cdecl, _stdcall , PASCAL, _fastcall, _thiscall

来自百度百科 几种函数调用方式__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。_stdcall 是StandardCall的缩写,是C++的标准

2013-02-28 15:13:27 386

转载 函数指针

函数指针的概念,在潭浩强先生的C语言程序设计这本经典的教程中提及过,在大多数情况下我们使用不到,也忽略了它的存在。函数名实际上也是一种指针,指向函数的入口地址,但它又不同于普通的如int*、double*指针,看下面的例子来理解函数指针的概念:[cpp] view plaincopyint function( int x, int y );  i

2013-01-31 13:29:42 398

转载 C++中的单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。       单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做

2013-01-30 17:17:07 367

转载 浅谈C++多态性【转】

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。  C++多态性是通过虚函数来实现的,虚函数允许子类重新定

2013-01-30 15:05:19 390

转载 静态成员变量和静态成员函数(static)

面向对象的static关键字1、静态数据成员在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。先举一个静态数据成员的例子。//Example 1#include class Myclass{public:  Myclass(int a,int b,int c);  void GetSum();private: i

2013-01-30 14:40:12 378

转载 全局变量、局部变量、静态全局变量、静态局部变量的区别

把局部变量改变为静态变量后是改变了他的存储方式,即改变了他的生存期。把全局变量改变为静态变量后是改变了他的作用域,限制了他的使用范围,因此static这个说明符在不同的地方起的作用是不同的。================================================================C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6

2013-01-30 14:08:08 343

转载 抽象类及其方法

在C#中使用关键字 abstract 来定义抽象类和抽象方法。不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例。"一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被实例化,进一步一个抽象类只能通过接口和作为其它类的基类使用."- C++ Programming Language by Stroustrup Chapter13.2

2013-01-11 17:06:47 343

转载 C++ 初始化列表

何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的克访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ string name ; int id ; fo

2012-11-27 15:04:37 334

转载 string类构造、拷贝构造、赋值、操作符函数实现及注意事项

通过对string类构造、拷贝构造、赋值、操作符函数的实现及调试,可以更加深刻的认识在创建或修改对象内容时的调用关系。下面是简单的实现:Mystr类:[cpp] view plaincopyclass Mystr{  public:      Mystr(void);      Mystr(const char *str);//加

2012-11-07 10:36:32 586

转载 伪句柄

对于句柄,大家都比较清楚和熟悉,可什么是伪句柄呢?       大家知道在系统中,对象分两类:核心对象和用户对象。如进程对象,线程对象,文件映射对象等就是核心对象;而向窗口,菜单等都是用户对象。这两者是有差别的,用于标示用户对象的句柄是系统唯一的,也就是说,一个进程完全可以对另外一个进程中的用户对象进行操作,比如两个进程间通信的方法之一就是发送消息。正是由于窗口是用户对象,所以句柄

2012-10-22 16:13:41 1521

转载 汇编寄存器列表

通用寄存器 下面介绍通用寄存器及其习惯用法。顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。通用寄存器最多的用途是计算。EAX 32-bit宽  通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针(此时,DS作为段 寄存器或选择器)  EBX 32-bit

2012-10-18 10:23:08 794

转载 汇编指令大全(有注释)

一、数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI

2012-10-18 10:13:23 797

转载 strdup的用法

原型:extern char *strdup(char *s);  头文件:#include   用法:char *strdup(char *s);  功能:复制字符串s  说明:strdup()在内部调用了malloc()为变量分配内存,当程序结束后,必须用free()释放相应的内存空间,否则会造成内存泄漏  举例:  //

2012-09-19 11:55:02 2249

转载 hash_map 与 hash_set 详解

1 数据结构:hash_map原理这是一节让你深入理解hash_map的介绍,如果你只是想囫囵吞枣,不想理解其原理,你倒是可以略过这一节,但我还是建议你看看,多了解一些没有坏处。hash_map基于hash table(哈希表)。 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换

2012-09-12 10:04:49 9058

转载 python random模块

Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 random.uniform  random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限

2012-08-23 15:21:37 639

转载 队列的入队,出队,测长,打印操作 .

01.#include "stdafx.h" 02.#include 03.//队列 04.using namespace std; 05.typedef struct node{ 06. node *next;//指向链表下一个节点 07.int data; 08.}node; 09. 10.//node表示队列中的每个节点元

2012-03-26 18:35:09 16274 1

转载 Stack & Heap in C/C++ .

一、预备知识?程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)? 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ? 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(st

2012-03-20 10:54:59 605

转载 等概率随机函数的实现

题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数newRand(), 使其以1/n的等概率产生1~n之间的任意一个数。解:解决思路:可以通过已知随机函数rand()产生等概率产生0和1的新随机函数Rand(),然后调用k(k为整数n的二进制表示的位数)次Rand()函数,得到一个长度为k的0和1序列,以此序列所形成的整数即为1--n之

2012-03-19 21:59:05 410

转载 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)【转】

strcpy:char *strcpy(char *strDestination, const char *strSource);{assert(strDestination && strSource);char *cp=strDestination;while(*cp++ = *strSource++); return strDestination;}

2012-03-04 21:51:00 426

转载 【转】程序员面试题精选算法58题加答案 .

这篇文章总结的非常好,以防以后找不到,在此转载。 程序员面试题精选(01)-把二元查找树转变成排序的双向链表  题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。  比如将二元查找树                                            10

2012-03-03 15:53:07 2247

原创 bitset的使用

一个小东西,可以对位认识的更深入一点 需要头文件  使用方式如下:char ch = -128; bitset bt(ch);调试状态下,就可以通过监视bt来查看ch每位是多少了

2011-11-15 11:20:26 467

转载 关于FILETIME的比较

<br />一直对FILETIME中的参数不太了解是什么意思, 也不知道怎么比较先后,之前都是转成systemtime再比较,感觉有点麻烦。终于发现有个API可以直接比较,CompareFileTime,具体的可以查MSDN。<br /> CompareFileTime<br /> <br />The CompareFileTime function compares two file times.<br /> LONGCompareFileTime(const FILETIME*lpFileTime1,

2010-10-21 10:22:00 8859 2

原创 "/0"不同的情况

下面两段小程序: 第一段#includeint main(void){     int x,y=0;     x=1/y;     printf("x=%d/n",x);      return 0;}************************第二段#includeint main(void){     int x;     x=1/0;     pr

2009-11-16 15:44:00 519

原创 快速排序

  int partition(int * sort, int start, int end){     int i=start;     int j=end;     int a=sort[end];      if(i>=j)          return -1;       while(i!=j)     {           while(sort[i]            {

2009-11-13 13:20:00 348

原创 "#"和"##"操作符

    预处理操作符"#"和"##"在ANSI C中可用,但在传统C中不可用。     单目操作符"#"使宏定义中的一个形式参数“字符串化”。下面是它用法的一例:     #define message_for(a, b)  printf(#a "and" #b ": We love you!/n")     int main(void)    {         

2009-11-11 16:47:00 584

原创 "..."

     "…"表示可以接受不定数量的参数,可以是0或多个参数。     举例说明:    printf函数,int printf ( const char *format, ... );其中的"..."就表示0个或多个参数。     另一个例子,int max ( int num, ... ),调用max(2,4,6,4,1,3);。

2009-11-08 23:23:00 354

百度校园招聘2010大礼包

校园招聘用的着,关于笔试、面试等等的问题,第一次上传,欢迎大家来捧场。

2009-10-11

空空如也

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

TA关注的人

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