
所有技术文章
文章平均质量分 74
colinchan
继续努力
展开
-
关于Platform SDK和Windows SDK
Windows SDK是用来支持32位和64位Windows平台以及.NET框架编程模型的开发包。Windows SDK这个名字从Windows Vista开始使用,它包含以前Platform SDK中的所有内容,同时包含.NET框架的内容。转载 2010-11-03 13:57:00 · 7148 阅读 · 0 评论 -
POSIX Thread: Create and Cancel
线程创建 1.1 线程与进程相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。转载 2009-09-03 16:21:00 · 1327 阅读 · 1 评论 -
select and epoll
1.支持一个进程打开大数目的socket描述符(FD) select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM服务器来说显然太少了。这时候你一是可以选择修改这个宏然后重新编译内核,不过资料也同时指出这样会带来网络效率的下降,二是可以选择多进程的解决方案(传统的 Apache方案),不过虽然linux上面创建转载 2009-09-03 16:18:00 · 808 阅读 · 0 评论 -
TLS for SIP Server
source article: http://www.cesnet.cz/doc/techzpravy/2007/tls-sip-server/#Mat06 CESNET technical report number 13/2007also available in PDF, PostScript, and XML formats.Jan Růžička27.11.20071转载 2009-08-26 14:09:00 · 8026 阅读 · 0 评论 -
Overload, Override and Overwrite
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4转载 2009-08-27 11:05:00 · 8019 阅读 · 2 评论 -
调用规则__stdcall与__cdecl
__cdecl __stdcall C 和 C++ 程序的缺省调用规范 为了使用这种调用规范,需要你明确的加上 __stdcall (或 WINAPI )文字。即 return-type __stdcall function-name[(argument-list)]转载 2009-08-24 15:57:00 · 1499 阅读 · 0 评论 -
CMake使用总结(2)
前言在前面一篇文章中,我们从一个sample入手,了解了CMake的基本用法和语法。但这个例子与实际开发还有一段距离,主要存在以下几点问题:生成的二进制程序和源程序混在一起使用gcc进程程序编译,而不是使用交叉编译工具为指定编译选项,通常会生成debug版本供调试用,release版本用于发布在本章,我们将sample程序逐步改造,解决上述问题。转载 2009-08-07 15:43:00 · 5502 阅读 · 0 评论 -
CMake使用总结(1)
前言做第一个linux项目时,Makefile是一行行敲入的,第二个项目后,开始使用cmake。至于为何选择cmake,倒不是觉得它有什么好,仅仅是因为当时项目组中的一个linux前辈向我们推荐了这个。经过一番研究之后,并在项目中使用,现将使用经验总结一下,供大家参考。 入门篇学习一项新知识的时候,最好是从sample开始。cmake官方网站就给出了转载 2009-08-07 15:42:00 · 1580 阅读 · 0 评论 -
IE和Firefox在JavaScript应用中的兼容性探讨
1.document.formName.item("itemName") 问题说明:IE下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"];Firefox下,只能使用document.formName.elements["elementName"].解决方法:统转载 2009-08-06 14:24:00 · 624 阅读 · 0 评论 -
Opendiameter攻略
第一章:紫微道(简介篇)opendiameter是一个非常优秀的认证计费相关的开源项目,它是Diameter协议(RFC3588)的一个完整C++实现库。opendiameter使用TCP进行传输保证可靠性(Radius协议使用UDP通讯),提供基于Session的C++类供上层应用程序开发时继承和使用。 第二章:白巅道(安装篇)Opendiameter的最新版是1.0原创 2008-01-05 21:37:00 · 5994 阅读 · 1 评论 -
Mozilla技术体系入门
Mozilla开发社区:http://developer.mozilla.org/cn/docs/ XUL XUL DOC: http://developer.mozilla.org/cn/docs/XULXUL 是一个Mozilla使用XML来描述用户界面的一种技术,使用XUL你可以快速的创建出跨平台,基于因特网的应用程序。基于XUL技术的应用程序可以很方便原创 2008-03-29 22:23:00 · 1712 阅读 · 0 评论 -
漫谈ACE与设计模式
说起C++ 的系统和网络编程开源库,恐怕没有人敢否认ACE的王者地位。其实ACE不光是一个实用的程序库和框架集,它更是一个设计模式的典范应用。ACE在线索引文档:http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/index.htmlACE具有极其明显的分层体系结构,一般划分为三个层次:1. 操作系统适配层2. C++包装层原创 2008-03-10 22:15:00 · 4021 阅读 · 1 评论 -
Joost插件开发
Joost Widgets是一些第三方开发的独立软件包,供Joost加载以扩展其功能,类似于Skype插件。 Joost Widget 开发介绍页面http://dev.joost.com/widgets/index.html 一. Joost插件加载方法打开Joost主程序,以中文版为例,选择右边按钮“我的Joost”,点击”百宝箱菜单“,再点击”百宝箱管理“,进原创 2008-02-23 18:06:00 · 1286 阅读 · 0 评论 -
freeradius配置杂记
freeradius(http://www.freeradius.org/)是一个开源的高性能radius服务器程序,据统计目前有超过50000套涉及计费的系统部署中选择了freeradius。freeradius以她的高灵活性和可配置性以及开源而闻名。支持的特性包括SQL,LDAP,RADIUS代理,负载均衡以及近100个字典文件。支持的验证方式包括 PAP, CHAP, MS-CHAP, EA原创 2007-12-04 10:40:00 · 18074 阅读 · 6 评论 -
SVN Server安装部署攻略(Linux+SubVersion+Apache)
一. 安装apr依赖库(Apache Portable Runtime Module)http://apache.mirror.phpchina.com/apr/apr-1.2.11.tar.gz./configuremakemake installhttp://apache.mirror.phpchina.com/apr/apr-util-1.2.10.tar.gz./configure --原创 2007-11-03 17:25:00 · 20861 阅读 · 3 评论 -
使用JavaScript实现跨域数据提交的原理与实现
出于安全性的考虑,在AJAX应用中,浏览器通常都会限制跨域提交数据,但这又恰恰是非常常用的需求。比如在a.com的页面上中提交一些请求数据到b.com的服务器上,b.com服务器处理请求完毕后返回响应内容到a.com的页面上。如何解决呢,使用js是比较简单易实现的方案,缺点是代码跟应用相关,无法抽象出模板机制进行重用。具体的原理和实现是这样的,在a.com的页面上,假设叫a.html, 提交数原创 2007-11-03 17:03:00 · 3113 阅读 · 0 评论 -
博鸽客户端架构(一):频道管理
博鸽客户端架构系列文章将深入讲述博鸽客户端实现的关键技术体系,包括博鸽的频道管理,子系统架构,界面管理,自动化技术等等。第一篇主要讲一下关于频道是怎么组织的,以后会陆续推出其它专题,敬请关注:-)博鸽网:http://www.blogdove.com/博鸽最新版下载:http://www.blogdove.com/download/BlogDoveSetup.exe在工程的原创 2007-10-28 18:37:00 · 1252 阅读 · 0 评论 -
编译官方eMule v0.49攻略
备注:编译环境Microsoft Visual C++ .NET 7.1,编译版本为官方eMule v0.49版本,非国内VeryCD版本。一:下载源代码和支持库1.下载eMule v0.49 源代码http://prdownloads.sourceforge.net/emule/eMule0.49c-Sources.zip2.Crypto v5.1http://www.cryptopp.原创 2009-10-10 10:19:00 · 7250 阅读 · 5 评论 -
内存分配函数总结
内存分配函数总结 收藏 document.body.oncopy = function() {转载 2010-02-23 16:01:00 · 2655 阅读 · 1 评论 -
最近项目中的Win32开发技巧拾遗
1. WinSock的初始化和关闭的智能管理。使用全局static对象,可实现在模块被调用时初始化WinSock,在模块卸载时关闭WinSock。#include #pragma comment(lib, "Ws2_32.lib") class CWinSockGuard{public: CWinSockGuard() {原创 2009-12-21 11:29:00 · 2001 阅读 · 0 评论 -
VC运行时库类型分析
VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)、单线程(/ML)、单线程调试(/MLd)。转载 2010-11-04 11:27:00 · 3142 阅读 · 0 评论 -
VC编译程序,运行时提示“由于应用程序的配置不正确,……”解决方法
下面分三种情况对运行错误“由于应用程序的配置不正确,……”进行解决,包括VC6.0、VC.NET2003、VC2005运行错误。转载 2010-10-25 18:31:00 · 3877 阅读 · 0 评论 -
如何升级Symbian Carbide C++的GCC编译器版本
在Symbian开发工程中,Carbide C++是非常好用的开发工具,目前提供GCCE,ARMV5(RVCT)两种编译器的支持。前者是免费的,RVCT是收费的编译工具,网上下载的Carbide并不默认提供,需要自己下载并配置才能使用,由于RVCT提供了专门的优化,编译结果的目标文件体积很小,且代码执行效率更高,但问题是该编译器费用比较昂贵,普通开发者很难承担。 目前,开发者中使用GCCE的比较多,但使用GCCE的问题是,默认提供的GCCE的版本比较老,在C:/Program Files/C转载 2010-10-08 13:53:00 · 1608 阅读 · 0 评论 -
Program for Android in C/C++ with the Native Development Kit (if you dare)
Not a big fan of Java? Well, get over it, because that’s the primary and recommended way to write applications for Android devices. It’s portable and… what’s that? Android’s Dalvik Java VM not fast enough for you? Granted, it’s an interpreted engine and as转载 2010-08-27 12:11:00 · 1723 阅读 · 0 评论 -
Problem of MiniDumpWriteDump in Win2K
MiniDumpWriteDump Function Requires DbgHelp.dll 5.1 or later. This dll exist by default in Windows 2000 and higher.However in Win 2000, The version of the dbghelp.dll file is lower than that, such as: 5.0.2195.6613.原创 2010-08-26 16:21:00 · 1994 阅读 · 0 评论 -
Choosing a Deployment Method of Visual C++ applications
There are three ways to redistribute Visual C++ DLLs转载 2010-06-25 10:48:00 · 1141 阅读 · 0 评论 -
Qt/Embedded图形化开发
嵌入式GUI为嵌入式系统提供了人机交互界面, 大大方便了嵌入式系统的人机交互,进而加速了嵌入式系统的流行。无论是智能手机、PDA还是MP4、PMP (个人媒体播放器)的流行,嵌入式GUI功不可没。嵌入式GUI为适应资源有限的嵌入式系统,往往要求界面简单、直观、可靠、占用资源小,并且反应迅速, 同时为了适应嵌入式系统硬件本身的多样性,嵌入式GUI需要具备高度可移植性与可裁减性,以适应不同的硬件条件和使用要求。因为对嵌入式GUI要求较高, 所以到现在为止,在嵌入式Linux 下可用的嵌入式GUI始终不多。本文将转载 2010-06-04 14:33:00 · 2138 阅读 · 0 评论 -
Could not read symbols解决方法
Could not read symbols:Linux/UNIX系统下编译时,常见的一类报错信息。 通常情况下,该编译报错信息之前会给出出现错误的静态库(.a结尾文件)、或动态库(.so结尾文件), 该报错的基本原因是当前编译器无法对库文件进行正确的解析转载 2010-06-01 14:37:00 · 6559 阅读 · 0 评论 -
How to detect the presence of the VC 8.0 runtime redistributable package
http://blogs.msdn.com/b/astebner/archive/2007/01/16/mailbag-how-to-detect-the-presence-of-the-vc-8-0-runtime-redistributable-package.aspx转载 2010-07-23 14:07:00 · 2274 阅读 · 0 评论 -
Linux信号列表
编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。转载 2010-07-16 12:55:00 · 848 阅读 · 0 评论 -
Special documentation blocks for doxygen
A special documentation block is a C or C++ style comment block with some additional markings, so doxygen knows it is a piece of documentation that needs to end up in the generated documentation.转载 2010-07-01 17:14:00 · 1081 阅读 · 0 评论 -
Flash activex控件版本信息
Flash activex控件一般安装在用户系统目录下:C:/WINDOWS/system32/Macromed/Flash/其中大版本号用数字表示,如9,10,11等,小版本号用小写字母表示,如a, b, c, d, e。如最新稳定版本为:Flash10e.ocx。 Flash activex控件的相关注册表项: HKEY_CLASSES_ROOT/ShockwaveFlas原创 2010-04-23 14:02:00 · 6515 阅读 · 0 评论 -
Generate a minidump when IE 8 crash
To generate a minidump:1) Download and install the "Debugging Tools" package: http://www.microsoft.com/whdc/devtoo...tallx86.mspx#a2) From the folder where you installed it, run WinDBG.exe as admin转载 2010-04-22 16:36:00 · 1365 阅读 · 0 评论 -
Trident,Gecko,WebKit三种浏览器引擎的简单介绍
From: http://www.lixiaopeng.org/trident-gecko-webkit-browser-engine-three-briefly/ 现在浏览器的内核引擎,基本上是三分天下:Trident: IE 以Trident 作为内核引擎。Gecko: Firefox 是基于 Gecko 开发。WebKit: Safari, <a class="alinks_li转载 2010-04-22 10:53:00 · 1744 阅读 · 0 评论 -
VS2005 freezes when downloading RASAPI32.DLL from symbols server
VS2005在调试相应程序时,从微软Symbols服务器加载rasapi32.dll时死锁的问题。解决方法,在Tools->Options->Debugging->Symbols->勾选上Search the above locations only when symbols are loaded manually.一般出现上述问题是在Symbols Location添加了下载服务器:原创 2010-01-07 17:20:00 · 1423 阅读 · 1 评论 -
Windows完成端口(Completion Port)编程小结
完成端口中ConnectEx的问题:完成端口用于客户端时一定要注意,创建的SOCKET要先随便绑定一个端口(默认0自动分配也可),然后再扔到完成端口中去,之后才可以ConnectEx,否则(不绑定),ConnectEx会出现10022错误。同时,getpeername似乎对ConnectEx不支持,也可能有其他细节设置我暂时不知道,返回的远程地址是无效的(仅对于完成端口用于服务器accept回原创 2009-12-22 16:58:00 · 6682 阅读 · 2 评论 -
深入浅出asterisk(四):部署CDR MySql模块
Asterisk可以存储CDR记录到一个MYSQL数据库中,也可以选择以CSV文本文件的形式保存起来。由于Mysql客户端开发库的版权问题,Mysql billing应用程序不再作为Asterisk标准发布版本中的其中一部分来发布,而是以附加内容的形式存在:asterisk-addons。为了让Asterisk支持把CDR日志保存到mysql数据库中,必须下载asterisk-addons原创 2007-09-28 17:00:00 · 9835 阅读 · 3 评论 -
深入浅出asterisk(二):chan_sip代码分析(上)
1. 代码简介:Chan_sip.c是SIP协议(RFC3261)的实现代码,它没有实现对S/MIME, TCP and TLS的支持,对应的配置文件是sip.conf,代码所在的分组是:通道驱动类(channel_drivers)。 SIP通道处理各种类型的Sip sessions和dialogs(注意:并不是所有的dialogs都是“电话呼叫”),主要包括: * - Inco原创 2007-09-28 16:50:00 · 8982 阅读 · 1 评论 -
编程之道
转自: http://qrcnu.blogchina.com/2167712.html 第一篇 静寂的空宇 编程大师如是说: “当你有本事夺走我手中的这块水晶石时,就是你出师的时侯了。” 1.1 在静寂的空宇里,一种神奇的物质形成并诞生了。它立刻便静止了,独自守侯着,豪无动静,然而又处于永恒的运动之中。转载 2006-08-01 17:04:00 · 1304 阅读 · 0 评论 -
计算机寓言
转自: http://qrcnu.blogchina.com/index.html目录引言 III第一篇 秋 1第二篇 冬 15第三篇 春 29第四篇 夏 43引言(一次前前往西藏拉萨的超越机器学院的旅行。)虽然我的C.P.Yu博士通信交往已有多年,但我从来没有见过他的面。去年《编程之禅》出版后不久,他给我的信停止了。几番查询也无济于事,不知道发生了什么。我别无选择,只好长途跋转载 2006-08-04 09:22:00 · 1994 阅读 · 0 评论