- 博客(37)
- 资源 (7)
- 收藏
- 关注
原创 电驴 emule 源码分析 (1)
关于emule 主要就是 连接 kad网络部分, 搜索部分,共享部分,下载部分,还有就是IRC聊天部分。IRC聊天部分应该不是大多数人想知道的重点,核心部分 还是kad网络的构造 和 下载部分 的实现。 我看了下 搜索部分,大致的过程是以下酱紫。 希望有更多 学习emule源码的人 一起交流共享。
2014-07-03 09:46:49 4582
原创 模仿MFC寻找消息响应函数指针的 核心 代码
typedef struct {UINT nMessage;UINT nCode;UINT nID;UINT nLastID;UINT nSig;int * p;}TEST;const TEST* AFXAPIMyAfxFindMessageEntry(const TEST* lpEntry,UINT nMsg, UINT nCode, UINT
2014-06-05 16:17:19 956
原创 ROUND_UP函数详解(STL内存分配的时候 内存对齐上调大小的函数)
在STL的源码中,或者是其他地方碰到内存对齐的时候 一般会有一个类似于round_up的函数。 一般是像这样子 #define __ALIGN 8 //假设是按照8个字节对齐 static size_t ROUND_UP(size_t bytes) {
2014-04-13 15:39:13 5734
原创 MFC整个框架的粗略概况
对于windows程序 ,无非是消息循环 和 窗口过程的消息处理。 无论是MFC 或者是WTL ,都只是内部封装,搞清楚这个过程 对于掌握框架,甚至自己制作框架都有好处。 前段时间已经分析了一下WTL的, 关于MFC的框架,侯杰的 深入浅出MFC讲的比较细致。很到位,作为想把MFC彻底搞清楚的人 ,不应该去拒绝这本书。 MFC实现了自己的RTTI, 当
2014-02-27 12:27:08 1231
原创 比较成员被声明的顺序
在《深入探索C++对象模型》中,谈到声明的顺序时候说到, 声明变量的顺序和他们实际在内存的排列顺序是可以不一致的,但是大多数编译器实现都一致, 基本上是按照其声明的顺序而排列的。 并且给出下面这段代码 来比较任意两个成员的排列顺序。 书中的代码 在vs系列里面 编译不过,我改了一下 ,没有问题。 下面是实例代码#include class A{public: int a;
2014-02-26 12:56:12 946
原创 WTL的框架粗略概况
大道不过三两行,说穿不值一文钱。 WTL的源码比MFC的要简洁一些。 虽然UI封装的少,但是没有大碍,如果WTL用时间长了 你会觉得 比MFC更舒服,实际上MFC提供的文档视图结构 基本上 大部分人 都没用到,很多做界面开发的 更本不需要这个。
2014-01-30 00:04:33 1417
原创 用完成端口(iocp) 写的一个简单的服务端例子
下面是用完成端口写的一个简单的 例子, 完成端口和重叠io 一样都是异步io。代码如下。欢迎大家建议 改进、
2014-01-11 00:54:59 2507
原创 各种排序算法的实现-11(基数排序算法)
这种算法可谓独树一帜, 基数排序算法的基本思路如下 比如有一组数, 009,003,239, 342,039,001,232。 我们只需要从各位 并且归类即可。 首先 数字 只可能出现 0,1,2,3,4,5,6,7,8,9.每个数的 每一位 只可能出现这10种情况, 那么就可以这样子做 首先取这些数的个位出来, 那么为1的有一个,为2的有两个,为3的有一个,为9
2013-12-30 14:06:19 902
原创 各种排序算法的实现-9(快速排序的实现)
这种排序算法 实际上也要依靠冒泡的手段。大致思路是这样子的, 比如有个序列, 1,4,7,-33,24,9,10,22,43,0.
2013-12-29 18:43:52 1004
原创 各种排序算法的实现-8(选择排序的实现)
这种排序算法的实现很容易理解 就是从后面的序列中找一个最小的出来,不断的找啊 找最后整个堆找没了就完了思路很简单, 就好像你在人家教室外面喊 第一名出来,然后第一名出来 ,第二名出来 ,第二名出来, 如此下去 整个教室就空了, 选择排序一样,就是 第一次喊 最小的出来,然后 把最小的 给推出去, 不断的喊 喊道整个序列都没了 也就有序了 下面是具体的算法的实现的例子 大家可以看看
2013-12-29 02:38:29 1027
原创 各种排序算法的实现-4(表插入排序-1)
现在介绍一下表插入排序。 这种排序算法和直接插入排序很像,每一个节点都存在一个 next域 来指示 这个节点的下一个节点, 和链表有点像, 在插入的过程当中就保证当前已经根据他们的next指向的位置 而链成了一个有序的列表,然后第二步 再帮这个表按照顺序整理为一个 新的 按照大小顺序 而排列的表。 首先演示一下插入的过程, 下面是具体的实验代码: #define SI
2013-12-29 00:13:08 1252
原创 各种排序算法的实现-3(2路插入排序)
这种排序在 折半插入排序的基础上更进一步, 比较次数更少了,先利用一个辅助空间,相同的就可以了。首先看一下折半查找算法, 折半查找可以用递归来写 也可以用 循环。 templateint serach(T *p, int len, T key){ T low, high; high = len; low = 0; while (low <= high) { int
2013-12-24 16:16:08 1049
原创 各种排序算法的实现-1(直接插入排序)
很多排序算法 可能你当时看完还记得,但是时间长了就会忘记, 我现在在这里 记录一下 ,供大家共同讨论。 首先介绍最直接 最简单的 ,直接插入排序算法: 这种算法思想比较简单,就是从第二元素开始,依次往后挪动, 每一个元素与前面的元素逐个比较,一旦找到了比自己大的元素 或者相等的元素,那么ok 直接插进去。 如此循环 直到列表遍历完毕。
2013-12-22 22:01:33 1402
原创 一个重叠io的例子 实现一个简单的服务器
#include #define STRICT#define _WIN32_WINNT 0x0500 // Windows 2000 or later#define WIN32_LEAN_AND_MEAN#include #include #pragma comment(lib,"Ws2_32.lib")#pragma comment(lib,"Mswsock.lib")#define BUFFE
2013-08-04 01:01:31 1252
原创 线程池实现处理多个连接
#include #include // initsock.h 文件#pragma comment(lib, "WS2_32") // 链接到WS2_32.libclass CInitSock{public:CInitSock(BYTE minorVer = 2, BYTE majorVer = 2){ // 初始化WS2_32.dllWSADATA
2013-07-30 16:05:26 1409
原创 WSAEventSelect模型
#include #include // initsock.h 文件#pragma comment(lib, "WS2_32") // 链接到WS2_32.libclass CInitSock{public:CInitSock(BYTE minorVer = 2, BYTE majorVer = 2){ // 初始化WS2_32.dllWSADATA
2013-07-25 22:34:45 1203
原创 String类的基本实现。
#include #include using namespace std;class String{ public: String(const char *str = NULL); // 通用构造函数 String(const String &another); // 拷贝构造函数 String & operator=(const String &rhs)
2013-06-23 23:34:58 1150
原创 整理过后的电驴emlue的源码,直接用vs2010编译可运行,不需要配置环境
下载链接:http://www.527book.com/emule0.50a-Xtreme8.1-sources.zip也可以加入群 C/C++/TCP/UDP/linux/MFC/WTL 群号:77278127.群共享有。下载下来后 直接打开 下载下来后 打开srchybrid文件夹 下的 emule_vc9.sln 。可以直接编译通过。
2013-06-08 15:48:31 1504
原创 VC问与答
1、在VC的MFC程序中能否使用cout输出?答:不能。必须使用CDC来进行输出。2、C++中子类的构造函数是否会自动调用基类构造函数?答:会。如果在子类的构造函数中不显式指定调用基类构造函数,则将自动调用基类缺省构造函数,所以基类一定要有缺省构造函数。如果子类的构造函数除了调用基类构造函数以外什么都不做,不能不写,必须写一个空函数。3、子类对象的初始化过程
2013-06-08 11:48:04 1071
原创 c socket(转载)
socket目 录socket 1.socket() 2.bind() 3.connect() 4.listen() 5.accept() 6.send() 和recv() 7.sendto() 和recvfrom() 8.close() 和shutd
2013-06-08 11:46:56 915
转载 C 实现黑客帝国数字雨
黑客帝国大家应该都看过吧 ! 其实也没有什么吸引我的 出了里面的数字雨 很漂亮也很经典 一直深深的吸引着我 ! 下面 我们用 VC 来实现 #include #define ID_TIMER 1 #define STRMAXLEN 25 //一个显示列的最大长度 #define STRMINLEN 8 //一
2013-06-08 11:45:35 5347 3
转载 世界编程大赛第一名写的程序C 实现黑客帝国数字雨
以下是代码片段:e100 33 f6 bf 0 20 b5 10 f3 a5 8c c8 5 0 2 50 68 13 1 cb e 1f be a1 1 bf 0 1 e11b 6 57 b8 11 1 bb 21 13 89 7 4b 4b 48 79 f9 ad 86 e0 8b c8 bd ff ff e8 20 e134 0 3d 0 1 74 1a 7f 3 aa eb
2013-06-08 11:36:53 11248 4
原创 再玩KMP算法
废话少说,我把代码弄上去,以免以后忘记了,算是做个纪念吧。#include #include using namespace std;void GetNext(char str[],int Next[]);void GetNextval(char str[],int Nextval[]);int KMP(string T,string str,int *Next
2013-06-08 11:34:18 856
转载 VC实现局域网组播 C++交流群QQ群:77278127 非一年以上经验勿入。
在局域网中,管理员常常需要将某条信息发送给一组用户。如果使用一对一的发送方法,虽然是可行的,但是过于麻烦,也常会出现漏发、错发。为了更有效的解决这种组通信问题,出现了一种多播技术(也常称为组播通信),它是基于IP层的通信技术。为了帮助读者理解,下面将简要的介绍一下多播的概念。众所周知,普通IP通信是在一个发送者和一个接收者之间进行的,我们常把它称为点对点的通信,但对于有些应用,这种点对点的通信
2013-06-08 11:24:50 1936 1
转载 TCP的拥塞避免算法
为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又
2013-06-08 11:23:14 1520
原创 MFC的消息响应函数
typedef struct {UINT nMessage;UINT nCode;UINT nID;UINT nLastID;UINT nSig;int * p;}TEST;const TEST* AFXAPIMyAfxFindMessageEntry(const TEST* lpEntry,UINT nMsg, UINT nCode, UINT nID){ASSERT(...
2018-08-28 16:48:48 3012
原创 如何让移动端的 前端 div 支持拖拽,多点触控pinch,放大,缩小,双击?
有个网站 公布了 10种支持 各种手势 的 前端的js库,包括 旋转,快速拖动等,其中有Hammer.js quojs.我在使用hammer的过程中遇到一点问题。最后还是用了quojs来做的放大和缩小,quojs在谷歌上找到的 是coffeescript写出来的, 弄起来很麻烦, 我最后找了个用quojs的网站, 直接用了它的js, 但是我双击放大用的另一个js库。放到和缩小div 主要是
2017-11-25 14:04:46 4643 1
ffmpeg-2.6.1-vs2010.rar
2019-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人