开源软件(金山、Nginx、Gual)/设计模式
Jackchenyj
缩小与大牛的差距,唯一的方法就是不断学习
展开
-
关于COPY-ON-WRITE [转贴
最近碰到几次谈论copy-on-write技术,虽然以前接触过,但忘记了,现在在网上找到一篇叙述一下。标准C++类std::string的内存共享和Copy-On-Write技术标准C++类std::string的内存共享和Copy-On-Write技术1、概念Scott Meyers 在《More Effective C++》中举了个例子,不知你是否还记得转载 2014-07-17 12:54:50 · 2138 阅读 · 0 评论 -
开放封闭原则、 设计模式六大原则(3):依赖倒置原则
2.3.1 引言 无论如何,开放封闭原则(OCP,Open Closed Principle)都是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的,例如以Liskov替换原则实现最佳的、正确的继承层次,就能保证不会违反开放封闭原则。2.3.2 引经据典转载 2013-07-10 22:40:36 · 2849 阅读 · 1 评论 -
VNC源码研究(二十四)vnc-4.0-winsrc版本之winvnc工程分析
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 此工程编译出winvnc4.exe二进制文件。它得到的二进制是作为VNC服务端来使用的。一、从main说起int main(int argc, const char* argv[]) { int result = 0; try { // - Initi原创 2013-03-11 11:06:34 · 9629 阅读 · 6 评论 -
常见设计模式的解析和实现(C++)之九—Decorator模式
作用:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 UML结构图:抽象基类:1) Component :定义一个对象接口,可以为这个接口动态地添加职责。2) Decorator:维持一个指向Component的指针,并且有一个和Component一致的接口函数。 接口函数:1) Compo原创 2013-03-24 22:02:15 · 1294 阅读 · 0 评论 -
常见设计模式解析和实现(C++)Adapt模式
作用:将一个类的接口转换成客户希望的另一个接口。Adapt模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 UML示意图1) 采用继承原有接口类的方式 2)采用组合原有接口类的方式 解析:Adapt模式其实就是把完成同样一个功能但是接口不能兼容的类桥接在一起使之可以在一起工作,这个模式使得复用旧的接口成为可能。实现:转载 2013-03-03 17:40:37 · 2808 阅读 · 0 评论 -
常见设计模式解析和实现(C++)Prototype模式(原型模式)
作用:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。UML结构图: 抽象基类:1) Prototype:虚拟基类,所有原型的基类,提供Clone接口函数接口函数:1) Prototype::Clone函数:纯虚函数,根据不同的派生类来实例化创建对象。解析:Prototype模式其实就是常说的“虚拟构造函数”的一个实现,C++的实现机制中转载 2013-03-03 17:34:24 · 1652 阅读 · 0 评论 -
ffdemux_mpegts中时间戳的处理问题
ffdemux_mpegts是gstreamer的demux plugin,基于ffmpeg,在使用的时候发现处理实时流存在问题。先来描述一下问题,采用gst-launch命令启动转码,命令如下:gst-launch-0.10 udpsrc multicast-group=239.1.80.80 port=49500 ! queue ! ffdemux_mpegts name=de转载 2013-11-07 07:46:18 · 2687 阅读 · 0 评论 -
虚拟桌面:一个简单的桌面管理工具
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家拍砖!参考英文文章: Virtual Desktop: A Simple Desktop Management Tool>>源代码请到原文链接下载。一、引言几个月前,我的一个大学同学正在用一个工具来管理混合桌面。我很好奇有这种的工具。我想它应该仅用来隐藏显示不同桌面的翻译 2012-07-19 02:20:30 · 7950 阅读 · 0 评论 -
多线程写图像文件的一点小测试(Boost + Gual)
转载自: http://blog.csdn.net/liminlu0314/article/details/7420484 在处理遥感图像中,发现往往比较耗时的是在数据的IO中,尤其是在O(写入)的时候更加耗时。GDAL可以支持图像的多线程写入,下面结合实例进行简单的测试,看看实际效果会不会提高。 在这里我使用的是boost库的thread库来进行多线程创建。下面先使用计算转载 2012-06-29 13:45:04 · 2858 阅读 · 2 评论 -
金山卫士开源软件之旅(六) 添加控件CBkEdit与CbkCombo
转载请标明是引用于 http://blog.csdn.net/chenyujing1234代码:http://www.rayfile.com/zh-cn/files/43e39bde-8b68-11e1-8d11-0015c55db73d/测试工程参考我的另一篇文章金山卫士开源软件之旅(二) 简单教程:如何创建一个基于金山卫士界面库的工程>>:http://blog.csdn.ne原创 2012-04-21 12:10:10 · 5226 阅读 · 1 评论 -
GDAL源码剖析(二)之编译说明
转载自: http://blog.csdn.net/liminlu0314/article/details/6937194一、简单的编译1、使用VisualStudio IDE编译首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,makegdal71.sln,makegdal90.sln 。这些文件是Vis转载 2012-06-29 13:07:27 · 1492 阅读 · 0 评论 -
金山卫士开源软件之旅(二) 简单教程:如何创建一个基于金山卫士界面库的工程
完整解决方案代码压缩包: test_full.zip (267.59 KB)参考:http://bbs.code.ijinshan.com/thread-1391-1-1.html为了让更多的朋友能够让自己的程序使用上金山卫士的界面库,现将创建界面库的过程用文字说明,希望可以帮助到各位。如果觉得过程麻烦,也可以直接下载创建后的完整代码。基本要求:安装WTL,下载地址:htt转载 2012-03-27 15:08:06 · 5533 阅读 · 1 评论 -
GDAL源码剖析(一)
转载自: http://blog.csdn.net/liminlu0314/article/details/6933772 前言:一直在使用和研究GDAL的相关东西,发现网上对GDAL的内容倒是不少,但是很少有系统的介绍说明,以及内部的一些结构说明,基于这些原因,将本人的一些粗浅的理解放在此处,形成一个系列,暂时名为《GDAL源码剖析》(名称有点大言不惭,欢迎大家口水吐之,板砖拍之),供大转载 2012-06-29 12:51:25 · 1544 阅读 · 0 评论 -
金山卫士开源软件之旅(八) netmon下netmon工程的解析---netmon.exe的启动过程分析
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 _tWInMain主要做安装,实例判断,初始化COM环境,开始界面显示.int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow){ /原创 2012-04-26 15:00:31 · 2771 阅读 · 0 评论 -
金山卫士开源软件之旅(十) KSafeMain工程的分析 1
上一次看金山开源到现在已有一两个月了。期间看到QQ群里大家对它很是热情。最近有时间想看看金山的主界面工程KSafeMain,自己水平有限,总结的东西浅显。但还是愿意拿来与大家分享。希望对大家有帮助。 转载请标明是引用于 http://blog.csdn.net/chenyujing1234欢迎大家提出问题讨论。 1、超链接的加入上图中红色标注的地方就是超链接的地方。原创 2012-06-04 11:38:55 · 10733 阅读 · 6 评论 -
金山卫士开源软件之旅(九) KUI高级界面(列表控件、树控件例子、超文本、网页控件)
转载自: http://blog.csdn.net/b2b160/article/details/6275839#reply注意: 作者的例子及代码是基与上一版本的金山库,XML的语法及有些API名字不一样。 本篇开始介绍比较复杂的界面应用了.界面应用介绍完成后,估计要开始整理系统的应用文档资料了.也不知道自己能坚持到啥时候,呵呵. KUI高级界面 这一篇有些内容转载 2012-05-30 10:54:27 · 3775 阅读 · 0 评论 -
金山卫士开源软件之旅(五) XML编码格式导致的运行出错
转载请标明是引用于 http://blog.csdn.net/chenyujing1234相关代码下载:http://blog.csdn.net/chenyujing1234/article/details/7399014今天有一网友问我为什么用在金山的开源框架上写的应用程序运行提示下面内容:Debug Assertion Failed!Program:...File:原创 2012-04-18 17:16:54 · 1475 阅读 · 0 评论 -
软件设计模式之(一)责任链模式
欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 例子代码:(编译工具:Eclipse)http://www.rayfile.com/zh-cn/files/2a49656e-91da-11e1-a750-0015c55db73d/参考书籍: > 责任链模式(Chain of Responsib原创 2012-04-29 17:00:00 · 1464 阅读 · 0 评论 -
金山卫士开源软件之旅(四) netmon下FwProxy工程的解析---接口实现及接口使用方法
转载请标明是引用于 http://blog.csdn.net/chenyujing1234上一篇文章金山卫士开源软件之旅(三) netmon下FwProxy工程的解析----COM组件的管理模式>>中讲到如何去实现CFwProxy::GetCLSID与CFwProxy::CreateInstance.这里做继续介绍.FwProxy主要是防火墙的设计及驱动的加安装卸载。这里涉及两个类CF原创 2012-04-17 20:10:08 · 2129 阅读 · 0 评论 -
软件设计模式之(四) 桥接模式
欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 例子代码:(编译工具:Eclipse) 参考书籍: > 1、模式定义桥接模式(Bridge Pattern), 的用意是“将抽象化与实现化脱耦,使得二者可以独立地变化”。1、1 脱耦所谓的耦合,就是两个实体的行为的某种强关联。而将它转载 2012-05-19 10:46:15 · 3372 阅读 · 0 评论 -
软件设计模式之(三) 解释器模式
欢迎大家提出意见,一起讨论!转载请标明是引用于 http://blog.csdn.net/chenyujing1234 例子代码:(编译工具:Eclipse)http://www.rayfile.com/zh-cn/files/1291b5bd-9418-11e1-b6a1-0015c55db73d/参考书籍: >1、创建自己的语言解释器先简单地定义一下“myida原创 2012-05-17 22:34:07 · 1740 阅读 · 3 评论 -
金山卫士开源软件之旅(七) netmon下netmon工程的解析---接口KTdiDriverProxy的实现
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 在上一节讲FwProxy工程的COM使用方法时,讲到了与它联系紧密的接口HRESULT KTdiDriverProxy::Init(KProcessInfoMgr* pProcessMgr, KModuleMgr* pModuleMgr, KUrlMonCfg* pUrlCfgMon)其实不原创 2012-04-26 10:45:55 · 1995 阅读 · 1 评论 -
Nginx(二)通过SVN获得Nginx源码
下载SVN工具TortoiseSVN-1.7.6.22632-win32-svn-1.7.4.msihttp://tortoisesvn.net/downloads.html安装完成后,右击键中选择Repo-browser 在URL中输入 svn://svn.nginx.org/nginx/trunk 接下来把代码Export下来了.原创 2012-05-06 21:25:11 · 5621 阅读 · 2 评论 -
Nginx(三)源码剖析之内存池,与内存管理
Nginx源码剖析之内存池,与内存管理作者:July、dreamice、阿波、yixiao。出处:http://blog.csdn.net/v_JULY_v/。引言 Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯转载 2012-05-06 21:26:45 · 1260 阅读 · 0 评论 -
实现在XP中使用Remote Desktop时也能得到ClearType 效果
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家提出意见,一起讨论!源码请自行到参考文章中下载。 参考文章http://www.codeproject.com/Articles/20866/ClearType-over-Remote-Desktop-in-Windows-XP>> 一、介绍我所感兴趣的有以下:1)C原创 2012-07-19 15:26:11 · 2970 阅读 · 0 评论 -
SetProcessShutdownParameters函数说明
SetProcessShutdownParameters为当前调用的进程设置关闭的参数,此函数为进程设置一个相对于系统中其它进程的关闭顺序。BOOL SetProcessShutdownParameters( DWORD dwLevel, DWORD dwFlags); ParametersdwLevel [in] 进程关闭优先级(相对于系统中的其他进转载 2012-07-24 14:18:08 · 5271 阅读 · 0 评论 -
VirtualLock
VirtualLock Applies to: desktop apps onlyLocks the specified region of the process's virtual address space into physical memory, ensuring that subsequent access to the region will not incur a转载 2012-07-24 14:24:23 · 2466 阅读 · 0 评论 -
常见设计模式解析和实现(C++)FlyWeight模式
作用:运用共享技术有效地支持大量细粒度的对象 UML结构图: 解析:Flyweight模式在大量使用一些可以被共享的对象的时候使用。比如,在QQ聊天时很多时候你懒得回复又不得不回复,一般会用一些客套的话语敷衍别人,如“呵呵”,“好的”等待之类的,这些简单的答复其实每个人都是提前定义好的,在使用的时候才调用起来。Flyweight就是基于解决这种问题的思路而产生的,当转载 2013-03-06 08:19:10 · 1569 阅读 · 1 评论 -
软件设计模式之(二)装饰者模式
欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 例子代码:(编译工具:Eclipse)http://www.rayfile.com/zh-cn/files/1291b5bd-9418-11e1-b6a1-0015c55db73d/参考书籍: > 装饰者模式(Decorator ['dekəre原创 2012-05-02 05:25:58 · 7564 阅读 · 4 评论 -
Nginx (一)Windows下编译Nginx源码以及安装 nginx for windows方法步骤
转载自:http://apps.hi.baidu.com/share/detail/11192699#content Nginx介绍:Nginx ("engine x")是一个高性能的 HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Nginx是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该转载 2012-05-06 21:23:30 · 16475 阅读 · 1 评论 -
Nginx(五)Nginx入门级配置与部署及“Hello World”
转载自: http://blog.csdn.net/poechant/article/details/7049027这一次我们要学习什么?就是用Nginx在一台机器上搭建一个最简单的显示“Hello World”的Web服务器。那我们就 step by step 来尝试吧~1. Nginx 程序包目前最新的开发版本时1.1.12:Linux/Unix:nginx-1.1.12.转载 2012-10-03 11:13:31 · 1903 阅读 · 0 评论 -
Nginx(六)Nginx请求处理机制
转载自: 本文为您解读,Nginx是如何处理请求的,让你从逻辑上有一个清晰的认识。1. 处理什么样的请求处理访问到 Nginx 所在 IP 地址的请求,并且这些请求的 HTTP 头信息中的 Host 为所要处理的域名(如下以80端口为例),如下几个 server 就对应响应的请求:server { listen 80; server_name ng转载 2012-10-03 11:26:37 · 3795 阅读 · 0 评论 -
Nginx(四)Nginx简介及入门示例
转载自: http://blog.csdn.net/poechant/article/details/6729920 概述从这篇博文起,将带领读者们一起领略Nginx的强大。Nginx 是做什么用的?我相信很多朋友都已经使用过,如果你没有,那么你一定知道以下这些名称之一:Apache,Lighttpd,Tomcat,Jetty。它们占据了目前Web服务器的几乎全部江山,其中 Apa转载 2012-10-03 11:04:45 · 1192 阅读 · 0 评论 -
SetUnhandledExceptionFilter处理未捕获异常
一、 首先看下百度上的对此函数的解释。 设置异常捕获函数. 当异常没有处理的时候,系统就会调用SetUnhandledExceptionFilter所设置异常处理函数. 例如一些程序在出错的时候,会向用户报告说程序那出错就是利用这个.例如QQ..二、 异常处理中的一部分 当发生异常时,比如内存访问违例时,转载 2012-07-24 14:31:41 · 2567 阅读 · 0 评论 -
金山卫士开源软件之旅(三) netmon下FwProxy工程的解析----COM组件的管理模式
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 类似于MFC中加入COM,由放多的宏实现COM的定义和接口的声明。在金山卫士中也采用了MFC中加入COM的方法,这大大减少了开发COM的难度。1、COM组件的管理模式。(单件模式)FwProxy创建的dll为COM组件,它的COM创建方法与一般方法类似,但管理方法却采用单件模式,这值得我们学原创 2012-04-09 09:23:49 · 6074 阅读 · 5 评论 -
TrueCrypt简介、在VS2008下的编译过程
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家拍砖! 编译过程中用到的工具下载地址: http://download.csdn.net/detail/chenyujing1234/4448383(资源内容:PKCS11.7 + gzip.exe + asm.zip + MsVSVC++1.52.7z)一、TrueCrypt原创 2012-07-24 11:09:26 · 10147 阅读 · 23 评论 -
金山卫士开源软件之旅(一) VS 2005环境下编译
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 参考文档:http://bbs.code.ijinshan.com/viewthread.php?tid=1543http://bbs.code.ijinshan.com/viewthread.php?tid=929&extra=&page=21、下载代码与libhttp://cod原创 2012-03-27 13:59:18 · 8882 阅读 · 3 评论