设计模式(一)工厂模式(转)
摘要:原文地址(http://www.cnblogs.com/cxjchen/p/3143633.html)简单工厂模式简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到...
阅读全文
posted @
2016-01-08 15:53
可笑痴狂
阅读(1190)
推荐(0) 编辑
读者写者问题
摘要:参考地址:http://blog.csdn.net/morewindows/article/details/7596034读者写者问题描述非常简单,有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者在读文件时写者也不去能写文件。类似于生产者消费者问题的分析过...
阅读全文
posted @
2015-12-29 18:12
可笑痴狂
阅读(6280)
推荐(0) 编辑
生产者消费者问题
摘要:参考地址:http://blog.csdn.net/morewindows/article/details/7577591生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓...
阅读全文
posted @
2015-12-29 11:36
可笑痴狂
阅读(1435)
推荐(1) 编辑
找出数组中出现次数超过一半的元素
摘要:参考地址:http://www.cnblogs.com/DayByDay/p/3871834.html?utm_source=tuicool&utm_medium=referral题目:找出数组中出现次数超过一半的元素(前提是该元素一定存在)解法1:每次删除数组中两个不同的元素,删除后,要查找的那个...
阅读全文
posted @
2015-12-22 17:02
可笑痴狂
阅读(6422)
推荐(0) 编辑
FTP客户端上传下载Demo实现
摘要:1、第一次感觉MS也有这么难用的MFC类;2、CFtpFileFind类只能实例化一个,多个实例同时查找会出错(因此下载时不能递归),采用队列存储目录再依次下载;3、本程序支持文件夹嵌套上传下载;4、boost::filesystem::create_directory不能递归创建文件夹,需手动实现...
阅读全文
posted @
2015-12-10 15:51
可笑痴狂
阅读(19261)
推荐(0) 编辑
程序员有趣的面试智力题(转)
摘要:转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6726419 偶然间在网上看到几个原来没见过的面试智力题,有几个题目在国内流传相当广,什么n个人怎么分饼最公平,屋里的三个灯泡分别由哪个开关控制,三架飞机环游世界,用火...
阅读全文
posted @
2015-11-27 15:45
可笑痴狂
阅读(5756)
推荐(3) 编辑
Socket编程基本流程实践
摘要:通讯基本流程图如下所示:Server端代码(ServerDemo.cpp): 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 #pragma comment(lib,...
阅读全文
posted @
2015-05-14 17:11
可笑痴狂
阅读(18326)
推荐(2) 编辑
#pragma data_seg 共享数据区(转)
摘要:原文地址:http://www.cnblogs.com/CBDoctor/archive/2013/01/26/2878201.html1)#pragma data_seg()一般用于DLL中。也就是说,在DLL中定义一个共享的,有名字的数据段。最关键的是:这个数据段中的全局变量可以被多个进程共享。...
阅读全文
posted @
2015-05-04 14:45
可笑痴狂
阅读(5001)
推荐(0) 编辑
Windows共享内存示例
摘要:共享内存主要是通过映射机制实现的。 Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。当调用 CreateFileMapping 创建命名的内存映射文件对象时,Windows 即在物理内存申请一块指定大小的内存区域,...
阅读全文
posted @
2015-04-28 11:10
可笑痴狂
阅读(38661)
推荐(3) 编辑
Socket原理与编程基础(转)
摘要:一、Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进...
阅读全文
posted @
2015-04-24 17:12
可笑痴狂
阅读(2817)
推荐(0) 编辑
GBK、UTF8、UNICODE编码转换
摘要:1 string GBKToUTF8(const std::string& strGBK) 2 { 3 int nLen = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0); 4 WCHAR * wszUTF8...
阅读全文
posted @
2015-04-02 15:24
可笑痴狂
阅读(20470)
推荐(1) 编辑
URLEncode与URLDecode总结与实现
摘要:URLEncode: 用于编码URL字符串,数字和字母保持不变,空格变为'+',其他(如:中文字符)先转换为十六进制表示,然后在每个字节前面加一个标识符%,例如:“啊”字 Ascii的十六进制是0xB0A1——>%B0%A1代码实现: 1 unsigned char CHAR_TO_HEX( un...
阅读全文
posted @
2015-04-01 12:24
可笑痴狂
阅读(10312)
推荐(0) 编辑
Base64原理与实现
摘要:Base64编码说明 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。 为了保证所输出的编码位...
阅读全文
posted @
2015-03-31 09:05
可笑痴狂
阅读(1986)
推荐(0) 编辑
VS调试快捷键
摘要:VS调试快捷键命令名快捷键说明调试.应用代码更改Alt + F10启动生成操作,利用它可以通过“编辑并继续”功能应用对正在调试的代码所作的更改。调试.自动窗口Ctrl + D,Ctrl + A显示“自动”窗口,以查看在当前过程中,目前所执行中的变量的值。调试.全部中断Ctrl + Alt + Bre...
阅读全文
posted @
2014-12-10 12:24
可笑痴狂
阅读(452)
推荐(0) 编辑
运行程序报“应用程序配置不正确”或者缺少运行库造成程序不可移植的问题
摘要:虚拟机里边是Windows server 2003的系统,本机VS2008开发的exe程序移植到虚拟机中Release版本正常,Debug版本不能正常启动报“应用程序配置不正确”,在安装了vcredist_x86.exe之后仍然无法解决问题,使用Dependency Walker跟踪报Error: ...
阅读全文
posted @
2014-11-11 10:09
可笑痴狂
阅读(2654)
推荐(0) 编辑
C++模拟键盘消息
摘要:实现功能:在现有DLL程序中向特定的EXE窗口中发送模拟键盘的消息 使用API根据窗口标题递归查找特定的窗口句柄,之后模拟调用。注意:keybd_event函数不能在VS下使用,所以用SendInput代替使用: 1 int SelfFindWindows(HWND hMainWnd, c...
阅读全文
posted @
2014-10-15 17:27
可笑痴狂
阅读(16484)
推荐(0) 编辑
在VS中添加lib库的三种方法
摘要:注意:1、每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties"->"ConfigurationProperties"->"Debugging",在"WorkingDirectory"设置dll的路径就可以了2、无论是设置DLL目录,或者是Lib目...
阅读全文
posted @
2014-10-08 14:32
可笑痴狂
阅读(87032)
推荐(5) 编辑
C++可变参数列表处理宏va_list、va_start、va_end的使用
摘要:VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员:1)va_list型变量:#ifdef _M_ALPHAtypedef struct{char* a0; /*pointertofirsthomedintegerargument*/int offset; /*by...
阅读全文
posted @
2014-09-30 10:57
可笑痴狂
阅读(16737)
推荐(0) 编辑
C++ 内存对齐
摘要:C/C++内存对齐参考资料:http://wenku.baidu.com/view/8eaaa26925c52cc58bd6bed2.html一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访...
阅读全文
posted @
2014-09-03 11:01
可笑痴狂
阅读(862)
推荐(0) 编辑
Dll 导出函数那些破事
摘要:经常使用VC6的Dependency查看DLL导出函数的名字,会发现有DLL导出函数的名字有时大不相同,导致不同的原因大多是和编译DLL时候指定DLL导出函数的界定符有关系。VC++支持两种语言:即C/C++,这也是造成DLL导出函数差异的根源我们用VS2008新建个DLL工程,工程名为“TestD...
阅读全文
posted @
2014-08-20 12:28
可笑痴狂
阅读(32434)
推荐(2) 编辑