摘要: C++ 变量也许和其他语言的变量没有什么差别.就是用来存储一些可能会变值的容器. 当然 C++ 变量里又分为 原子类型 的(int , char ,bool 等等),复合类型 的(struct ,class ,union). 这篇内容会比较侧重与于记录些原子类型的变量的使用和注意事项.其实我想很多都... 阅读全文
posted @ 2014-07-08 09:41 kzangv 阅读(962) 评论(0) 推荐(2) 编辑
摘要: C 的简史在谈论 C++ 的历史那么必须先得了解 C 的历史,那么我们先来看一段来自于 > 对 C 语言史前阶段的简单阐述:Ken Thompson(左), Dennis Ritchie (右)听上去有些荒谬,C 语言竟然源于一个失败的的项目.1969 年,通用电气、麻省理工、学院和贝尔实验室联合创... 阅读全文
posted @ 2014-01-11 21:25 kzangv 阅读(2374) 评论(4) 推荐(2) 编辑
摘要: 网络中的进程是如何通信的?在网络中进程之间进行通信的时候,那么每个通信的进程必须知道它要和哪个计算机上的哪个进程通信.否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程).这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互.什么是套接字?套接字是作为4BDS UNIX的进程通信机制,它用于描述 IP 地址和端口,是一个用于通信连接的文件描述符. 阅读全文
posted @ 2013-06-27 13:49 kzangv 阅读(2752) 评论(0) 推荐(2) 编辑
摘要: 代理类首先定义三个类:class Animal{public: virtual void getName()=0; virtual void clone()=0;};class Cat:public Animal{public: void getName(){coutclone()... 阅读全文
posted @ 2013-03-13 15:10 kzangv 阅读(3791) 评论(2) 推荐(4) 编辑
摘要: 线程池(本章节中例子都是用 VS2010 编译调试的)线程池编写必须在WindowsVista操作系统(以及以上版本的操作系统)下,且 C++ 编译器版本至少是 VS2008线程池的功能以异步的方式来调用一个函数每隔一段时间调用一个函数当内核对象触发的时候调用一个函数当异步 I/O 请求完成的时候调用一个函数注意当一个进程初始化的时候,它并没有任何与线程池的开销.但是,一旦调用了新的线程池函数,系统就会为进程相应的内核资源,其中的一些资源在进程终止之前都将一直存在.正如我们可以看到,使用线程池的开销取决于用法:系统会以进程的名义来分配线程,其他内核以及内部数据结构.因此我们不应该盲目地使用这些 阅读全文
posted @ 2013-03-11 14:56 kzangv 阅读(9066) 评论(1) 推荐(7) 编辑
摘要: 作业(本章节中例子都是用 VS2005 编译调试的)参考文献:Windows作业内核事件用途:Windows 提供一个作业对象,它允许我们将进程组合在一起并创建一个"沙箱"来限制进程能做什么.可以将作业想象成一个进程容器.但是,只包含一个进程的作业同样有用,因为这样可以对进程施加平时不能施加的限制.注意:如果进程已与一个作业相关联,就无法将当前进程或者它的任何子进程从作业中除去,这个安全特性可以确保进程无法摆脱对它施加的限制.如果确定在自己的代码中不再访问作业对象,就必须调用 CloseHandle 来关闭它的句柄.但是关闭一个作业对象,不会迫使作业中的所有进程都终止运行. 阅读全文
posted @ 2013-03-10 13:55 kzangv 阅读(1758) 评论(0) 推荐(0) 编辑
摘要: 目录 内核对象概述互斥对象事件对象可等待的计时器内核对象信号量内核对象内核对象状态速查表保证实例的唯一性(本章节中例子都是用 VS2010 编译调试的)内核对象概述何为内核对象内核对象为一个数据结构且只能被内核访问,因此应用程序无法在内存中找到这些数据结构并直接改变它们的内容.Microsoft 规定了这个限制条件,目的是为了确保内核对象结构保持状态的一致.所以 Microsoft 能自由的添加、删除和修改这些结构中的成员.同时不干扰任何程序正常运行.Windows 提供了一组函数,来对这些结构进行操作.始终可以使用这组函数来访问这些内核对象.当调用一个用于创建内核对象的函数时,该函数就返回一 阅读全文
posted @ 2013-02-07 16:37 kzangv 阅读(2699) 评论(0) 推荐(3) 编辑
摘要: 目录 Interlocked 系列函数多线程访问共享变量的问题关键代码段/临界资源Slim 读写锁条件变量线程同步(内核对象)线程同步的比较Interlocked 系列函数为何要使用 Interlocked 系列来修改线程共享变量,先看看下面的例子://共享变量 g_xlong g_x = 0;//线程1DWORD WINAPI ThreadFunc1(PVOID pvParam){ g_x++; return 0;}//线程2DWORD WINAPI ThreadFunc2(PVOID pvParam){ g_x++; return 0;}代码中声明了一个全局变量并将... 阅读全文
posted @ 2013-01-09 10:20 kzangv 阅读(4245) 评论(2) 推荐(4) 编辑
摘要: 目录 CHtmlDialog 对话框与普通对话框的区别事件处理映射宏DDX 宏C++ 与 javaSript 的相互调用CDHtmlDialog 中 html 资源加载 css 样式,js 脚本,图片CHtmlDialog 对话框与普通对话框的区别目前发现了四点(可能还有更多):类的继承关系class CTestHtmlDialogDlg : public CDHtmlDialog//表明此对话框类的确是继承了CDHtmlDialog资源枚举enum { IDD = IDD_TESTHTMLDIALOG_DIALOG, IDH = IDR_HTML_TESTHTMLDIALOG_DIALOG 阅读全文
posted @ 2012-12-02 20:57 kzangv 阅读(7702) 评论(5) 推荐(1) 编辑
摘要: 目录ODBC 概述 ODBC 数据类型API 函数ODBC 编程(本章节中例子都是用 VS2005 编译调试的,数据库为 SQL Server 2005)ODBC 概述ODBC 概述ODBC(Open Database Connectivity),开放数据库互连.ODBC 是上个世纪八十年代末九十年代初出现的技术,它为编写关系数据库的客户软件提供了一种统一的接口.ODBC 提供一个单一的 API,可用于处理不同数据库的客户应用程序.使用 ODBC API 的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信ODBC 是为客户应用程序访问关系数据库时提供的一个标准的接口,对于不同的数据库 阅读全文
posted @ 2012-11-29 19:58 kzangv 阅读(6572) 评论(6) 推荐(2) 编辑
top