自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (25)
  • 收藏
  • 关注

原创 windows api 实现删除指定目录下的所有文件(包括子文件夹下的所有文件)

        因工作需求,网上有一个CFileFind相关的示例,但因这部分功能需要放在服务器端,故用win api实现了这个功能,代码如下:BOOL IsDirectory(const char *pDir){ char szCurPath[500]; ZeroMemory(szCurPath, 500); sprintf_s(szCurPath, 500, "%s//*"

2011-06-21 20:03:00 14198

原创 IO完成端口学习示例

连接:http://blog.csdn.net/sodme/archive/2006/04/17/666062.aspxhttp://lijinshui.bokee.com/3245440.htmlhttp://blog.csdn.net/sodme/archive/2005/07/17/427405.aspxhttp://blog.csdn.net/vieri_ch/archiv

2011-06-11 17:32:00 1537 1

原创 网络编程实践学习报告

1.  socket的keepalive ---以后详述2.   完成端口的工作线程取包过程,返回结果, msdn有错。--以后详述 。3.

2011-06-03 09:42:00 861

原创 timer 定时器

<br />链接资料:<br />http://blog.csdn.net/yuntongsf/archive/2009/12/03/4936161.aspx<br />http://apps.hi.baidu.com/share/detail/18082112<br /> <br />个人代码:<br />// TimerExample.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>int _tmain

2011-05-30 20:27:00 600

原创 文件操作

<br />基本用法:<br />http://blog.csdn.net/yingfox/archive/2007/12/06/1921600.aspx<br /> <br />个人写的代码:<br />#include <stdio.h> #include <stdlib.h>#include <windows.h>int main() { char szFileName[MAX_PATH]; ZeroMemory(szFileName, MAX_PATH); strcpy

2011-05-28 17:58:00 794

原创 设计select的真正目的

首先明确IO分为阻塞IO和非阻塞IO,为了提高性能,windows网络编程中提出了5中IO模型,其中设计select的真正目的是:1. 防止应用程序在套接字处于锁定模式时,在一次IO绑定调用过程中,被迫进入“锁定”状态;2. 防止套接字处于非锁定(非阻塞)模式时,产生WSAEWOULDBLOCK错误。解释下2:一般在非阻塞模式时,accept等函数会立即返回,错误为WSAEWOULDBLOCK,然后通过循环调用accept直到来了一个连接,这样调用的效果并不好,所以采用sele

2011-05-28 12:51:00 831

原创 好文章整理

1.关于#pragma warninghttp://dev.csdn.net/article/66/66106.shtm2.installshield 使用:http://www.cnblogs.com/Cindy_weiwei/archive/2009/05/19/1460230.html3.NTDLL.DLL): 0xC0000005: Access Violation问题:A-------在内部进行调试的时候发现,是调用了new操作符的缘故。 很不理解,在dll中调用new操作符会出现这么一个问题,网

2011-05-15 19:37:00 757

原创 windows内存映射

为了说明内存映射的使用方式,下面是个人写的例子:首先创建了一个大于2GB的文件,并写入一定量地测试数据,代码如下:HANDLE hFile = CreateFile("media.mp3", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); //TODO: change the size of the file. if (hFile == INVALI

2011-05-07 10:02:00 1475

原创 windows核心编程读书笔记

<br /><br />1.<br />必须记住的是,内核对象的存在时间可以比创建该对象的进程长。<br />2.<br />内核对象能够得到安全描述符的保护。安全描述符用于描述谁创建了该对象,谁能够访问或使用该对象,谁无权访问该对象。安全描述符通常在编写 服务器应用程序时使用,如果你编写客户机端的应用程序,那么可以忽略内核对象的这个特性。<br />3.<br />HANDLE CreateThread(<br />   PSECURITY_ATTRIBUTES psa,<br />   DWORD dw

2011-04-28 10:29:00 791

原创 windows io 异步读写

#include #include void main(){ HANDLE hfile = CreateFile("test.txt",GENERIC_READ | GENERIC_WRITE, 0,NULL,CREATE_ALWAYS, FILE_FLAG_OVERLAPPED | FILE_ATTRIBUTE_NORMAL,NULL); if (hfile == INVALID_HANDLE_VALUE) { printf("invalid handle

2011-04-27 11:08:00 1618

原创 c++编译器偷偷做的事

贴一:http://blog.csdn.net/ACb0y/archive/2011/02/11/6179167.aspx贴二:http://kmplayer.iteye.com/blog/674710以上是其中一部分。对于c++类中带有虚拟函数时,显示多态特性时,编译器做的事情:1.默认会为每一个class object生成一个虚拟函数表指针,该指针指向一个外部的虚拟函数表,表内存有type_info信息和虚拟函数信息。2.默认情况下构造函数会初始化这个虚拟函数表指针,析构函数会释放该虚拟函数表指针指向的

2011-04-13 11:15:00 668

原创 IPPROTO_IP Option Level

<br />IPPROTO_IP Option Level<br />The socket options on the IPPROTO_IP level pertain to attributes specific to the IPv4 protocol, such as modifying certain fields in the IPv4 header and adding a socket to an IPv4 multicast group. Many of these optio

2011-04-11 10:27:00 4427

原创 multicast(一) (转自network programming for microsoft windows, second edition.)

看完这个就知道IGMPV3怎么实现了,简单,容易:Multicasting with SetsockoptOriginally, the only way to join or leave a multicast group was via the setsockopt API. Winsock 2 introduces a protocol-independent method of multicasting with the WSAJoinLeaf API (discussed in t

2011-04-08 11:14:00 2247 5

原创 typeid和异常

转自 :http://www.cppblog.com/smagle/archive/2010/05/14/115286.html同时必须注意vc6.0对typeid的支持性不够好 ,很简单的一点:

2011-04-07 10:12:00 711

原创 条款34: 将文件间的编译依赖性降至最低 (转自effective c++ second edition)

<br /><br />假设某一天你打开自己的C++程序代码,然后对某个类的实现做了小小的改动。提醒你,改动的不是接口,而是类的实现,也就是说,只是细节部分。然后你准备重新生成程序,心想,编译和链接应该只会花几秒种。毕竟,只是改动了一个类嘛!于是你点击了一下"Rebuild",或输入make(或其它类似命令)。然而,等待你的是惊愕,接着是痛苦。因为你发现,整个世界都在被重新编译、重新链接!<br />当这一切发生时,你难道仅仅只是愤怒吗?<br />问题发生的原因在于,在将接口从实现分离这方面,C++做得不

2011-04-01 10:27:00 572

原创 条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用 (转自effective c++ second edition)

<br /><br />本条款听起来很复杂,其实不然。它只是一个很简单的道理,真的,相信我。<br />先看第一种情况:返回一个局部对象的引用。它的问题在于,局部对象 ----- 顾名思义 ---- 仅仅是局部的。也就是说,局部对象是在被定义时创建,在离开生命空间时被销毁的。所谓生命空间,是指它们所在的函数体。当函数返回时,程序的控制离开了这个空间,所以函数内部所有的局部对象被自动销毁。因此,如果返回局部对象的引用,那个局部对象其实已经在函数调用者使用它之前被销毁了。<br />当想提高程序的效率而使函

2011-04-01 10:06:00 799

原创 windows thread的简单使用

<br />由于主要使用pthread-win32,所以对windows自带的线程没那么熟练,写个例子练下手:<br />#include <windows.h>#include <winbase.h>#include <process.h>#include <stdio.h>#include <stdlib.h>#pragma comment(lib,"MSVCRT.LIB")HANDLE event;HANDLE mutex;unsigned int __stdcall

2011-03-31 17:46:00 5819 1

原创 类与类之间的转化,重载user-defined类型运算符

#include #include using namespace std;#include #include #include class d_Hello;/** * probeMatch message format in the received data soap:body.*/class d_probeMatch{public: d_probeMatch() { memset(m_d_Types,0,50); memset(m_

2011-03-31 11:06:00 684

原创 条款10: 如果写了operator new就要同时写operator delete (转自effective c++ second edition)

<br /><br />让我们回过头去看看这样一个基本问题:为什么有必要写自己的operator new和operator delete?<br />答案通常是:为了效率。缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特定的场合下,可以进一步改善它的性能。尤其在那些需要动态分配大量的但很小的对象的应用程序里,情况更是如此。<br />例如有这样一个表示飞机的类:类airplane只包含一个指针,它指向的是飞机对象的实际描述(此技术在条款34进

2011-03-31 10:19:00 581

原创 没关闭socket带来的后果

封装了socket后,把以前的程序都更改了一遍,于是漏掉了closesocket函数的调用,个人用udp的习惯是绑定指定的本机地址和port,所以上一个socket未关闭,socket未处理time_wait状态,当然已经设置了SO_REUSEADDR,但还是会导致下一个socket,无法正常接收。测试了一下,新创建socket可以绑定成功,但是调用select读取返回一直返回0,但是偶尔还是可以的,真是个郁闷的不确定性。。。

2011-03-30 16:24:00 4170

原创 内存分配失败的处理

<br />看到effective c++中内存分配的处理,编写代码便于以后的理解:<br />1. 基本版:<br />#include <new.h>#include <iostream>using namespace std;int PrintError(size_t size){ cout<<"memory failed in allocation/t"<<size<<endl; return 0; //return 1; if executes here, then t

2011-03-29 11:28:00 5644

原创 global class object互使用注意事项

看effective c++中说明这一点,有点怀疑,所以试了一下,下面会说明怀疑点:GlobalTest.h源代码:#ifndef GLOBALTEST_H#define GLOBALTEST_Hclass GlobalTest{ public: GlobalTest(); virtual ~GlobalTest(); int GetA(){return m_a;} protected: private:

2011-03-26 22:37:00 946

原创 类导出dll库方式

<br />在我的资源中 。<br /> 

2011-03-16 11:20:00 428

原创 多播和广播

1.广播一般局限于局域网,多播即可用于局域网也可跨越广域网。2.广播地址:如在192.168.1.xxx局域网内,广播地址为:192.168.1.255。多播地址为IPv4D类地址:224.0.0.0到239.255.255.255.一般推荐239.0.0.0到239.255.255.255.3.多播具备比较完备的过滤功能,而广播容易引起网络风暴。

2011-02-19 13:52:00 696

原创 一个漂亮的 mfc button开源代码

<br />在codeprojecthttp://www.codeproject.com/KB/buttons/cbuttonst.aspx上,可以下载到该源代码以及使用该源代码出来的例子效果,同时扩展出来的好看的如CShadeButtonST等等效果也着实不错,大家可以下载下来试试。

2011-02-14 11:30:00 1724 1

原创 读program_think生产者消费者模式有感

<br />针对个人在开发的一个搜索工具,因为之前并没有设计,有现成的,但是需要做一个内部使用的工具,所以就做了个山寨版,没有设计,直接上手开发,看了program_think的博文后,突然想起以前的自己明明就是设计偏爱设计,所以针对性的总结一下。<br /> <br /><br /> <br />关联关系:<br />首先声明缓冲区可以采用队列缓冲区,环形缓冲区,或者采用两个队列缓冲区(取出如果采用多线程时的同步和死锁开销)。<br />缓冲区可以作为缓冲类的成员,内部还有生产者对象和消费者对象。生产者将

2011-02-12 11:09:00 2443

原创 CComboBox 改变大小时注意事项

<br />MFC中的CComboBox类中用MoveWindow改变大小时,它的高度实质上是设置了list box的高度,<br />即combobox显示区域的高度,这里要注意!!!

2011-02-10 17:12:00 1357

原创 2011是否依然心存梦想和激情~

<br />2011年一月27日年会开始了,这对我来说,意味着2010年过年的钟声即将响起,从7月份毕业,到现在已有半年时间,我作为一名程序员,内心的酸涩已无法用只言片语来形容。<br /> <br />2009年冬(大四),进入某大型外企工作仅三个月,无法忍受IT苦力工的现实,由做c#转到c/c++,面试了一家小企业,easy的进去了,因为要回校答辩,所以没有考虑太多,先拿下了offer,算作失败的跳槽,工资下降1k多,毕业时的斗志,是希望能找到一家可以发挥自己专长,成就自己梦想的地方,所以薪资问题并没有

2011-01-28 09:41:00 747 1

原创 深度探索c++模型读后记录

1。c++类中的函数,static成员是放在类外的,也就是说在类外可以直接使用。2。

2011-01-16 19:01:00 544

原创 tinyxml用法学习

通过在http://www.grinninglizard.com/tinyxml/ 下载tinyxml最新的release版,解压后可以在docs下我们可以查看tinyxml的节本用法,为了快速的掌握,可以在class Hierarchy 中打开TiXmlBase可以发现其类图结构。下面是我个人为了掌握或者说测试tinyxml,写的代码://#define TIXML_USE_STL#include "tinystr.h"#include "tinyxml.h"#include //tes

2011-01-14 11:51:00 2450 2

原创 problem log

1 recvfrom陷阱:记得以前学习网络的时候,每次发送和接收的包的大小最大不超过1500,数据部分最大不超过1460,而以前的我对书本知识总是念念不忘,觉得这是定律,当在写了一个udp broadcast程序后,发现广播出去后,接收的包的大小有的一次可接收超过1500的大小,也就是对方并没有对包进行分组发送,那么我接收的时候也不需要分组接收,而是一次性将一个比较大的包接收过来,recvfrom的参数buff的length最好设置为2000(也可通过抓包软件抓包来判断好包的大小后,再进行重新调整),以防止

2011-01-11 09:14:00 583

原创 迟来的2010总结

<br />踏入社会至今已有1年整了,大四开始在一家大型外企实习,做c#,三个月,三个月的苦力期终结了,没毕业之前就换了一份工作,做c/c++,因为大学很多的课设以及项目都是用java和.net开发,所以对c++基本忘了个光光,由于进的是一家小企业,所以怎么都能轻而易举拿下了 ~毕业之前,在这家小公司实习了一个月,这一个月收获着实不少,对c++的基本内容掌握了,看了一下windows核心编程,浏览了下win32API大全~<br />毕业后,情况就不太一样了,夜晚很多时候不再是自己的,周末也一样,因为有了她

2011-01-08 19:43:00 380

原创 2010的最后一天

当然兴奋了,终于确定了自己的开源项目了,因为一直未想出想要开发什么样的项目比较合适自己,今天终于逼迫自己想了一整天,最终决定做一个httpserver, 然后做一个browser。那么就从2011的第一天开始httpserver的开发吧。。。

2010-12-31 13:52:00 490

原创 socket通信简单例子

<br />在看unix网络编程,闲着的时候采用TCP实现了一个简单的cs通信示例:<br /> <br />tcpServer.c:<br />#include <stdio.h>#include <stdlib.h>#include <windows.h>#define MAX_LISTEN_QUEUE_NUMBER 10#define HOST_PORT 10000#define MAX_P

2010-12-29 14:33:00 548

原创 阻塞,非阻塞IO和同步,异步IO

<br />在oschina我的博客中有所讲解,链接如下:<br /><br /><br />http://my.oschina.net/shawnChen/blog/11508

2010-12-24 17:14:00 438

原创 使用基本的ace类通信 c/s

正在学习ACE,在http://www.oschina.net/code/snippet_102078_2515中,已经将代码贴出,实现采用ACE的基本socket相关类。

2010-12-22 15:32:00 658

原创 设计模式学习过程

博客园中的文章链接如下http://www.cnblogs.com/hegezhou_hot/category/260424.html看了单件,工厂,抽象工厂模式。这个链接的文章http://www.cnblogs.com/bear831204/archive/2010/10/22/1858395.html讲了观察者模式。

2010-12-14 10:23:00 457

原创 对threadpool的性能测试

<br />自己编写的threadpool(http://www.oschina.net/code/snippet_102078_2072或者http://jaff20071234.download.csdn.net/),没有正规的文档,只能自己编写程序进行性能测试了。<br /> <br />1。<br />创建一个threadmanage对象只含有10个线程,同时运行10000个任务,每个任务的工作是循环50次打印字符串。<br />创建一个threadmanage对象只含有100个线程,同时运行100

2010-12-03 14:40:00 1782 1

原创 支持通用框架的threadpool代码

------2010-12-1------线程池稍微模型,但是明显存在的一个大问题是---我的线程类实现的机制有问题:在每个start函数中创建线程,在创建线程之前,调用了sem.wait()函数,这样的话,主线程在创建第一个thread的start函数就wait在哪里,主线程无法继续走下去了 。。。悲哀,明天继续考虑其他的方式。---shawn------2010-12-2------

2010-12-01 21:55:00 699

原创 find方法in algorithm和stl vector同时使用

        刚用stl,很久之前学过的,但是很久没用了,最近做项目需要,随便写测试程序的时候发现不看确实不行。一个类型的对象能被放入容器,且支持容器的各项操作,需要符合下列条件:对象的构造和拷贝● 容器的insert、assign 等操作实际上是对一个对象的副本进行操作● 一个类型的对象能被放入容器、且支持容器的各项操作,需符合下列条件:● (最好)有默认构造函数● 必须有复制构造函数● 必须有T& operator=(const T& other) 形式的赋值操作 比较操作 ● 基于RB­Tree

2010-12-01 16:45:00 1694

autoconf-automake使用示例

1.autoconf automake的使用示例,比hello复杂些,更实用; 2.详细步骤参考这个哥们写的文章如下:http://blog.csdn.net/yunhua_lee/article/details/6172617

2013-09-29

类导成dll的方法代码介绍

学习对dll导出类的使用方法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2011-03-16

mfc控件编程和源码分享

主要讲解一些常用的更改控件或者dialog style,以及一些开源的重写button之后的代码,强烈推荐。

2011-02-14

深度探索cpp对象模型

一本深入讲解基础的书籍,本人指看过几章,感觉还不错,推荐给大家。

2011-02-14

unix 网络编程第一册

unix网络编程,大家应该都知道的

2011-01-03

threadpool ultimate version

线程池的终极版本,应该没什么bug了

2010-12-03

threadpool 1.1 支持通用框架的线程池

抱歉了,上个版本有一定的bug,现在提供1.1版的

2010-12-03

一个用codeblocks实现的具有通用框架线程池

本人花了两天时间编写的线程池,采用了linux通用的线程池框架,在windows上用codeblocks实现的。里面包含了测试代码,集成job的测试类代码和main中的测试代码,健壮性很好,还会继续优化。

2010-12-02

已经编译好的windows下使用的openssl

已编译好的windows下使用的openssl头文件和库文件。

2010-11-16

open rtsp client

rtsp client written in code::blocks, using gcc compiler also compatible with vc compilers.

2010-11-10

获取网段内所有主机IP并访问可以访问的设备。

本人花了一点时间,为了访问某个网段内的IP,由于一台主机可以对应多个Ip可以在多个网段内拥有IP,为了可以访问那些需要访问的设备,所以做了这个小软件,有bug是正常,希望大家提出,我好修改,等差不多没太多bug的时候,会开发源代码给大家,很简单的代码 ~~~

2010-09-04

深入浅出MFC清晰版

很出名的一本书了,也不用多说了,还算得上清晰,大家拿去看看吧 。。。

2010-08-21

win32多线程编程 win32多线程编程

win32多线程编程,还行的一个资源,可以下下来看一下,值得推荐 。。。

2010-08-04

c语言函数大全,c语言函数大全

c语言函数库,比较好用的一款 。。。大家可以尝试看一下 。。。

2010-08-04

vc++编程指南 vc++编程指南

一个比较好的编程指南,能给人好的指导,对初学者比较合适。

2010-08-04

ajaxcontroltoolkit

在很多的网站上都有,在这里提供给大家也是给大家多提供一份资源吧。。。

2009-08-09

ASPAJAXExtSetup

在按照网络上所说的解压ajaxcontrolltoolkit之前需要安装的东西,ajaxcontrolltoolkit在我的资源里面也是有的。

2009-08-09

ajax asp.netppt

本资源为jeffery zhao的ppt推荐给大家,很不错的希望大家能够去看一下。。。

2009-08-09

软件工程宿舍管理系统详细设计说明书

这是连接上面的概要设计说明书,详细设计说明书设计好了之后基本上编码也就很容易了。

2009-07-24

学生宿舍管理系统概要设计说明书

这是我做的软件工程宿舍管理系统的概要设计说明书,其中简单的说明了一下,大概框架是有了。

2009-07-24

软件工程宿舍管理系统需求规格说明书

学生宿舍管理系统的需求分析规格说明书,概括的很详细,都是我们同学一起商量的。

2009-07-24

学生宿舍管理系统---jsp

用mvc模式实现的,界面相对比较美观工整,模块比较清晰。

2009-07-24

操作系统课程设计(进程调度算法)

这个是本人花了两天写的算法,整40个小时搞定,短小精悍,用线程模拟进程,每个进程用线程来控制,比较有难度,用进度条来控制他的执行状态。

2009-06-27

java视频播放器-java课程设计

本课程设计虽说不那么完美,但是它自然有一定的特色。想要其他的版本,比如说好理解的版本,请留言。。。

2009-01-07

类似p2p的QQ聊天系统

这个程序是本人花了一周左右完成的,程序非常稳定,而且容易扩充,没有那么花哨,但是非常的实用。

2008-12-29

空空如也

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

TA关注的人

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