- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 在DHTML中响应ActiveX控件的事件
ActiveX控件可以用连接点创建事件,此事件可以在DHTML网页中被javascript函数处理,在js中响应ActiveX控件事件的方法如下:1. 静态创建方法 function OnEvent1() { } codeBase="myControl.cab" classi
2008-04-30 11:07:00
2636
原创 我选择的Firefox插件
多标签管理:Tab Mix Plus最便捷的打开新页面途径:Super DragAndGo增强的下载功能:Download Manager Tweak,Launchy多代理切换:FoxyProxy双核:IE Tab 屏蔽广告:Adblock Plus RSS功能:Wizz RSS News ReaderWEB调试利器:Firebug,Live HTTP HeaderGMail,搜索,书签,翻页,P
2007-11-28 18:22:00
2313
原创 Apache Hook机制解析(下)——实战:在自己的代码中使用Apache的钩子
在前文《Apache Hook机制解析(上)——钩子机制的实现》和《Apache Hook机制解析(中)——细节讨论》的基础上,我们对Apache的钩子机制已经有了较多的了解,下面的代码实战演示了一个日志钩子的声明、定义和使用,在VC6.0上编译测试通过,需要使用APR库(libapr和libaprutils)。1. hookLog.h——声明一个名为log的钩子#ifndef __HOOK_LO
2007-11-22 16:19:00
3630
原创 Apache Hook机制解析(中)——细节讨论
本文在上文《Apache Hook机制解析(上)——钩子机制的实现》的基础上,对钩子机制的细节了补充分析。1. 静态变量_hooks这个变量由宏APR_HOOK_STRUCT所定义,因为是静态的,所以对这个变量的操作只能在同一源文件中实现——也对应的AP_IMPLEMENT_HOOK_RUN_ALL宏必须在APR_HOOK_STRUCT所在的源文件中被定义。2. AP__开头的宏和AP
2007-11-22 16:11:00
5371
原创 Apache Hook机制解析(上)——钩子机制的实现
Apache中大量使用了Hook机制,使得第三方开发Module可以扩展Apache服务器的默认处理。Apache Hook功能可以简述如下:1. 程序主框架根据名称声明和定义Hook2. 第三方Module通过实现和挂载Hook来扩展主框架的行为。3. 程序主框架在某些操作发生时显示触发Hook例如,Apache的事务日志(也即访问日志)就是用Hook机制实现的,对应上面的3个
2007-11-22 16:01:00
6722
原创 nginx代码分析之(二)——Empty Gif是如何工作的
访问新浪时,时常会有一些网页返回空白(但不是“此页无法显示”),从浏览器的信息中可以知道此时服务器返回了一个1×1的空白gif图片。这实际上是nginx实现的,nginx有一个名为Empty Gif的module,专门负责此项工作。由于这个module比较简单,我们就先从它入手,来看看nginx的模块实现。模块注册Empty Gif这个module只有一个文件——ngx_http_empt
2007-11-06 11:00:00
7818
原创 nginx代码分析之(一)——初探
发现nginx是无意间在浏览器中看到新浪的一个错误页面“nginx ...”,不由起了好奇心。google了一把,发现这是一个支持负载均衡的反向代理服务器,俄罗斯人开发的,虽然没有走GNU或BSD的License,但是也算是一个开源软件。用工具确认了一下,新浪blog应该是用的nginx没错,下面是执行curl -I http://blog.sina.com.cn/ 的结果HTTP/1.1 200
2007-11-05 11:10:00
8331
3
原创 支持通配符的字符串比较——POSIX函数fnmatch
以前做字符串比较,如果要支持通配符,除非用正则表达式的一些库,否则非得自己好好编码一番不可。今天无意间在浏览mod_ssl的代码更新时,发现它比较带有通配符的域名(如*.sina.com.cn)时,使用了一个名为apr_fnmatch的函数: if (apr_fnmatch_test(cn)) { int fnm_flags = APR_FNM_PERIOD|APR_FNM_C
2007-10-18 10:50:00
3906
原创 优化无止境——特定场景的位图叠加算法优化
最近需要写一段位图操作的代码,功能是将一幅特定的Logo位图贴到视频中的每一帧上,实现类似电视台台标的效果,限制就是要过滤小位图中的特定颜色,避免出现难看的矩形块。如果用GDI来做,用TransparentBlt可以做到,可实际环境不允许,只能直接操作位图数据。最先在网上找了一些位图透明叠加的实现,多数是采用mask的方法,也就是针对Logo位图,设计一张同样大小和颜色深度的mask位图,将需要过
2007-05-31 15:48:00
2800
1
原创 一个Javascript的Logger Console(带演示)
JSLogger = function(){ this.m_bFullShow = false; this.m_bEnabled = false; this.isEnabled = function() { return this.m_bEnabled; }; this.enable = functio
2007-05-31 10:54:00
2574
原创 OOP with JavaScript(一) OOP的基本语法
javascript是一门太过灵活的函数语言,其语言机制本身并没有提供完整的面向对象实现(没有类,继承等概念),但凭借其灵活的语法,仍然可以在一定程度上实现OOP。比如类的概念,可以通过以下语法来实现类TestA:TestA = function(nValue) { this.m_nValue = nValue; this.funcA = function() { ale
2007-05-30 16:42:00
2223
原创 HBITMAP对位图数据存储的字节对齐
HBITMAP是常用的GDI对象,而GetDIBits可以从一个HBITMAP对象中获得其对应的位数据。其原型如下:int GetDIBits( HDC hdc, // handle to DC hdc, // handle to DC HBITMAP hbmp, // handle t
2007-05-30 14:39:00
4780
原创 C++进阶阅读材料:JTDraw
JTDraw 是从MSDN的例子drawcli演化而来的一个绘图程序,代码只有两万多行,但是框架搭得非常好,完全可以作为设计模式的教学样板(Command模式 + MVC),非常适合作为C++和设计模式的学习材料。源代码在很多地方都能找到,但由于使用了旧版本的BCG库,导致无法在最新的BCGPro上编译通过,这里是我稍作修改,使其能使用最新BCG库的一份拷贝。
2007-05-14 17:20:00
3442
原创 在InnoSetup制作的安装程序中下载安装其他程序
InnoSetup网站上提供的ispack就有此功能,其实现没有公布,但应该是采用了isxdl(这是ISTools的一部分,属于InnoSetup的推荐扩展)。isxdl以dll的方式提供,可以利用已有的窗口句柄显示其界面,InnoSetup的另一个推荐扩展ISSI提供了对isxdl的一个封装实现:#define ISSI_English#define ISSI_Download_Title "T
2007-04-10 18:39:00
5670
原创 VC程序对WS2_32.dll的依赖
使用VC2005新建一个Win32工程,添加一个Web Reference(这里用了google),然后在main函数中写上几行简单的代码: GoogleSearchService::CGoogleSearchService service; service.doGoogleSearch(_T("test"), _T(""), 0, 1, false, _T(""), false, _
2007-03-22 18:55:00
3506
原创 如何在VC工程中避免使用Precompiled Header
很多开源的c语言代码,添加到VC工程后,默认总是要手动加上#include "StdAfx.h",否则就会出来编译错误: fatal error C1010: unexpected end of file while looking for precompiled header directive可以采用如下方法避免此问题:Project Setting -> C/C++ -> Pre
2007-03-09 11:57:00
3031
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人