
C++
wuhuiran
吴会然,C ,高性能服务器开发,MFC客户端开发,设计模式,MYSQL,PHP……
展开
-
产品介绍
(1) I/O 模型的选择,epoll就一定好吗? 那是肯定的。epoll最有用的就是ET模式,适合于那种有大量连接,但是有数据的连接比较少的情况,如果你有10000个连接,但是很不幸,这10000个连接全部都有数据,你还是得遍历一把进行处理,( 这里对ET模式下怎么处理数据就不讨论了)。这个和select, poll有什么区别。epoll还有比select, poll先进得地...转载 2009-06-03 11:53:00 · 2519 阅读 · 0 评论 -
InterlockedExchange的返回值
LONG InterlockedExchange( LPLONG Target, LONG Value ); This function atomically exchanges a pair of 32-bit values. Return ValuesThe prior value of the LONG value pointed to by Targe原创 2009-01-12 23:07:00 · 2802 阅读 · 0 评论 -
开源远程监控软件列表
开源远程监控软件列表1,BO2K全名为Back Orifice 2000,是一个名为"死牛之祭"(Cult of the Dead Cow)的黑客组织发布的。发布一个星期不到,下载次数就达到十几万。"死牛之祭"这个黑客组织还专门为BO2K申请了一个顶级域名,可见其威力之大。下载地址:http://www.newasp.net/code/vc/3122.html2,VNC(Virtual Net原创 2008-11-17 19:16:00 · 2365 阅读 · 1 评论 -
让程序只运行一个实例的方法总结
让程序只运行一个实例的方法总结 转自:http://blog.joycode.com/sam1111/articles/2922.aspx让程序只运行一个实例的方法有数种,但原理都是相同的,就是在程序的主窗口创建之前,检查系统中是否已经存在某个与本程序相关的特定标志了。如果存在,则说明已经有一个实例在运行了,当前程序不用创建主窗口,直接退出即可。否则,就说明本程序是第一次运行。各种方法所不转载 2008-10-31 14:41:00 · 961 阅读 · 0 评论 -
ACE Service Configurator 框架(ACE Service Configurator Framework)
ACE Service Configurator 框架(ACE Service Configurator Framework)http://hi.baidu.com/pass86/blog/item/52402fdb56024e65d1164eea.html 需要的灵活性:在运行时对你的应用进行不同的配置,从而使用不同的服务。ACE Service Configurat转载 2008-10-09 17:35:00 · 1007 阅读 · 1 评论 -
基于VFW的视频应用程序开发
基于VFW的视频应用程序开发 发表日期:2004-10-25作者:huaboy408[转贴] 出处:优快云 当前,在Windows 平台下开发视频应用程序一般采用两种方式:一种是基于视频采集卡所附带的二次软件开发包SDK(Software development kit)进行。这种方式的优点是应用方便,容易上手,缺点是对硬件的依赖性较转载 2008-10-22 15:37:00 · 1243 阅读 · 0 评论 -
转帖两篇关于ACE和boost::asio的文章
ACE与ASIO之间关于Socket编程的比较转自:FREE MY SOULACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。最近分析ASIO的源代码,让我无不惊呀于它设计。在ACE中开发中的内存管理一直让人头痛,ASIO的出现,让我转载 2008-09-28 15:08:00 · 2991 阅读 · 1 评论 -
【风】的ACE笔记(1)-日志消息管理
ACE提供了非常灵活、方便的日志管理和消息输出功能,下面就一些简单和直接的功能做一个简单介绍ACE_DEBUG 常规的一些输出消息 ACE_ERROR 会提供程序出错的一些低级消息2个宏的用法上是一致的 ACE_DEBUG(错误级别,"格式串",变量1...变量N) 其中部分错误级别系统定义如下: LM_SHUTDOWN = 01,系统死机级别 LM_TRACE转载 2008-10-15 16:34:00 · 872 阅读 · 0 评论 -
ACE Proactor框架
ACE Proactor简介 前摄式I/O模型可以在多个I/O句柄上并行地发起一个货多个异步I/O操作,而无需等待它们完成。在每个操作完成时,OS会通知应用定义的完成处理器,由它随后对已完成的I/O操作的结果进行处理。 相关框架类/ 先让我们看一个最简单的使用ACE Proactor框架的Echo Server程序: #include #include u原创 2008-09-24 12:33:00 · 1641 阅读 · 0 评论 -
IOCP简单实现代码
简单实现,适合IOCP入门参考:《WINDOWS网络与通信程序设计》 /******************************************************************** Copyright (c) 2008, xxxxx有限公司* All rights reserved.** 文件名称:IOCPHeader.h* 摘原创 2008-09-18 10:36:00 · 1288 阅读 · 2 评论 -
C++的四种cast操作符的区别--类型转换
Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:代码:int i;double d转载 2008-06-27 21:40:00 · 1004 阅读 · 0 评论 -
Win32 Debug CRT Heap Internals
Win32 Debug CRT Heap Internals... by Andrew Birkett (andy@nobugs.org) If you are lazy, skip the explanation and jump to the table at the bottom of the page When you compile programs with DevStud转载 2008-06-15 20:40:00 · 1154 阅读 · 0 评论 -
C++导出模板类
C++导出模板类今天使用__declspec(dllexport)导出dll中的模板类,dll倒是编译通过了,不过链接的时候出错,无法解析的外部符号,汗到网上查了下,说是模板类无法导出然后我去掉了__declspec(dllexport),发现竟然编辑通过了,也就是不用导出声明就可以在dll外部使用模板类了测试了一下,这样使用没有出错,正常使用奇怪了,为什么呢?另:C++模板类必须是实现和定义原创 2008-11-20 11:36:00 · 4385 阅读 · 4 评论 -
SHCreateDirectoryEx 创建多级目录
SHCreateDirectoryEx FunctionCreates a new file system folder.Syntaxint SHCreateDirectoryEx( HWND hwnd, LPCTSTR pszPath, SECURITY_ATTRIBUTES *psa);Parametershwn原创 2008-11-27 18:49:00 · 3459 阅读 · 0 评论 -
守护进程
守护进程 在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。 守护进程,也就是通转载 2009-06-02 11:45:00 · 2820 阅读 · 0 评论 -
禁止webbrowser弹出窗口,禁止webbrowser读取缓存
1,禁止webbrowser弹出窗口 发现Silent不管用的,不知道是不是我用的不对,alert还是会弹出的 找了一段代码,(未测试) LPDISPATCH lpDispatch = m_explorer.GetDocument(); IHTMLDocument2* pDocument; lpDispatch->Query原创 2009-04-07 22:31:00 · 7796 阅读 · 2 评论 -
[zz]用 VS 2005 生成 .NET 1.1 程序
转载自:http://www.cnblogs.com/Safe3/archive/2008/10/19/1314653.html 装了.NET 2005 有时要生成的DLL 要求.NET 1.1 使用,实在不想装VS2003倒有办法让VS2005新增的生成后事件命令行来帮助我们使用.NET 1.1编译当前工程:要求机器上安装了.Net framework 1.1,可以不装SDK 在VS20转载 2009-03-23 10:01:00 · 2177 阅读 · 0 评论 -
VS2005不能播放宏?VS2005 SP1下载及安装
VS2005不能播放宏?VS2005 SP1下载及安装 VS2005不能播放宏,需要安装SP1 下载地址 http://download.microsoft.com/download/8/0/7/8071514d-9370-45c3-8af1-4ff09a70e59d/VS80sp1-KB926604-X86-CHS.exe 附:写注释的宏,vs6.0和vs2003两个版本的 http原创 2009-03-21 15:35:00 · 2091 阅读 · 0 评论 -
[转]写的activex控件在IE中弹出安全警告的解决办法~ (可用,强,致敬)
转自http://blog.vckbase.com/zaboli/archive/2004/11/30/1817.aspx//在控件头文件中加入:DECLARE_INTERFACE_MAP()BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety)STDMETHOD(GetInterfaceSafetyOptions)(R...转载 2009-03-19 11:00:00 · 2638 阅读 · 0 评论 -
正则表达式常用元字符
正则表达式常用元字符/b匹配单词的开头或结尾,如/bhi/b匹配单词hi,而单词his匹配失败。.匹配除了换行符以外的任意字符*前边的内容可以连续重复出现任意次.注意*前面要有内容.*连在一起就意味着任意数量的不包含换行的字符/d匹配任意的数字{2}匹配前面的内容必须重复出现的次数。注:前面的一个字符或元字符/s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。/w匹配字母或原创 2009-03-15 00:10:00 · 2341 阅读 · 0 评论 -
CWebBrowser2不写缓存,不读缓存,不写历史记录的方法
VARIANT flag; flag.vt = VT_I4; flag.iVal = navNoHistory + navNoReadFromCache + navNoWriteToCache; m_explorer.Navigate( _T(http://baidu.com, &flag, NULL, NULL, NULL );原创 2009-03-01 13:32:00 · 1792 阅读 · 1 评论 -
C++ Server Pages (CSP)
偶然发现的,权且记录下来,有时间看看 想过用C++来创建动态网页吗?C++ServerPages(CSP)可以帮您实现。C++ServerPages(CSP)不仅可以创建动态网页,还可以编写网页应用程序。通过加入C++源代码或直接将C++类include进CSP脚本中,网页就可以使用已有的C++项目(Project)。CSP与ASP、JSP类似,但CSP不用VBs cript、Js cri原创 2008-12-03 22:55:00 · 1229 阅读 · 0 评论 -
池内春秋,Memory Pool 的设计哲学与无痛运用
池内春秋,Memory Pool 的设计哲学与无痛运用,侯捷先生作品http://jjhou.youkuaiyun.com/programmer-13-memory-pool.htm 强烈推荐!原创 2008-12-02 14:03:00 · 3326 阅读 · 0 评论 -
malloc,new,VirtualAlloc,HeapAlloc性能(速度)比较
这里比较的VC++编译的C++代码中的性能我用的是VC6.0测试的就不介绍这几个的用法了 我写了一段简单的测试代码测试结果是:malloc:390new:391VirtualAlloc:454HeapAlloc:47很明显的是HeapAlloc分配速度最快,malloc次之,new和malloc差不多,VirtualAlloc最慢了(以前小强跟我说这个最快)我有跟原创 2008-11-30 19:49:00 · 7813 阅读 · 14 评论 -
【转】EPOLL技术
转自:http://blog.chinaunix.net/u/14063/showart_377118.html EPOLL技术在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来原创 2009-02-05 14:38:00 · 1177 阅读 · 0 评论 -
支持SQL语句的嵌入式数据库:SQLite
1、SQLite简介 SQLite第一个Alpha版本诞生于2000年5月. 至今已经有4个年头了. 而在今年的5月SQLite也迎来了一个新的里程: SQLite 3. SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统原创 2008-08-31 12:03:00 · 1605 阅读 · 0 评论 -
常用正则表达式收藏
1。^/d+$ //匹配非负整数(正整数 + 0) 2。^[0-9]*[1-9][0-9]*$ //匹配正整数 3。^((-/d+)|(0+))$ //匹配非正整数(负整数 + 0) 4。^-[0-9]*[1-9][0-9]*$ //匹配负整数 5。^-?/d+$ //匹配整数 6。^/d+(/./d+)?$ //匹配非负浮点数(正浮点数 + 0) 7。^(([0-9]+/.[0-转载 2008-08-29 10:50:00 · 882 阅读 · 0 评论 -
[zz]VC++下命名管道编程的原理及实现
管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。命名管道(Named Pipes)是在管道服务器和一台或多台管道客户机之间进行单向或双向通信的一种命名的管道。一个命名管道的所有实例共享同一个管道名,但是每一个实例均拥有独立的缓存与句柄,并且为客户——服务通信提供有一个分离的管道。实例的使用保证了多个管道客户能够在同一时间使用同一个转载 2008-04-02 10:04:00 · 908 阅读 · 0 评论 -
CXQueue进程间多到一的单向通信
CXQueue进程间多到一的单向通信http://www.codeproject.com/KB/threads/XQueue.aspxCXQueue是一个Win32平台下的进程间通信的类。实现多到一的单向进程通信,只能是客户端到服务器。可以在MFC中使用,也可以在WIN32 SDK程序中使用。原创 2008-04-03 14:13:00 · 863 阅读 · 0 评论 -
mysql遍历所有表,删除符合条件的记录的存储过程
DELIMITER $$DROP FUNCTION IF EXISTS `gtonline`.`func_delgroups`$$CREATE FUNCTION `gtonline`.`func_delgroups`(ngrpid INT ) RETURNS INT /*LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL原创 2007-12-16 19:18:00 · 3008 阅读 · 0 评论 -
gb2312 utf-8判断及转换
//.h#ifdef WIN32 /************************************************************************ * Name : ASCII2UTF8() * Desc : 将acii字符串转换为utf8格式; 返回转换后的长度 ************************************************原创 2007-12-15 23:28:00 · 2702 阅读 · 0 评论 -
禁止ie弹出alert窗口
void CXXXDlg::OnNavigateComplete2ExplorerIe(LPDISPATCH pDisp, VARIANT FAR* URL) { CComQIPtr spDocument2; spDocument2 = m_ie.GetDocument(); IHTMLWindow2 *pw; spDocument2->get_parentWindow(&pw);原创 2008-02-11 17:23:00 · 1900 阅读 · 0 评论 -
一条捕获网页中所有链接的正则表达式
一条捕获网页中所有链接的正则表达式,收藏一下,以后说不定会用上。/"/ ]+)["|/]?/s*[^>]*>([^>]+)/i原创 2008-02-11 03:16:00 · 827 阅读 · 0 评论 -
[zz]提交网页表单的两种方法
方法1:通过IE控件提供的COM接口实现 1、我的程序是基于对话框的,不是用的HtmlView,所以要先在对话框上放一个IE控件(Insert ActiveX Control,里面有一个Microsoft Web浏览器),给这个IE控件起个名字,比如m_ctrlWeb。另外要记着加上头文件,IE COM接口的东西都在里面放着。和如果没有的话也要加上。 2、用ClassWi转载 2008-02-11 02:07:00 · 1219 阅读 · 0 评论 -
[zz]用Windows默认浏览器打开网页
Windows默认浏览器的键值在注册表中的存放目录是‘HKEY_CLASSES_ROOT/htmlfile/shell/open/command’。 实现代码如下:void CXHDeskDlg::OnBtnWeb() { HKEY hkRoot,hSubKey; //定义注册表根关键字及子关键字 char ValueName[256]; unsigned char Dat转载 2008-02-11 01:49:00 · 2147 阅读 · 0 评论 -
[zz]IE编程技巧
1.实现Ctrl+C: ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 2.实现Ctrl+V: ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 3.实现查找:MSHTML::IHTMLDocument2Ptr pd转载 2008-02-11 01:35:00 · 670 阅读 · 0 评论 -
linux下线程池代码
//thrmgr.h#ifndef __THRMGR_H__#define __THRMGR_H__#include #include typedef struct work_item_tag { struct work_item_tag *next; void *data; struct timeval time_queued;} work_item_t;typedef stru原创 2007-11-06 19:07:00 · 1919 阅读 · 0 评论 -
[原创]可改变单元格字体和背景颜色的CListCtrl
http://dl2.youkuaiyun.com/down4/20070804/04174322825.rar可改变单元格字体和背景颜色的CListCtrl // 设置一单元格的颜色 void SetItemColor(int iItem, int iSubItem, COLORREF clrText, COLORREF clrBgr); // 设置一行的颜色 void SetItemColor(i原创 2007-08-04 17:45:00 · 3290 阅读 · 2 评论 -
判断网页已经完全打开(使用IE控件)
BSTR bstrStatus; CComQIPtr spDocument2 = m_ie.GetDocument(); HRESULT hr = spDocument2->get_readyState(&bstrStatus); CString szTempStatus(bstrStatus); SysFreeString(bstrStatus); if(szTempStatus.Compar原创 2008-01-16 10:47:00 · 986 阅读 · 0 评论 -
让子窗口在任务栏显示
基于对话框子窗口,在OnInitDialog中添加::SetWindowLong(m_hWnd,GWL_HWNDPARENT,NULL);原创 2008-01-16 11:25:00 · 1659 阅读 · 1 评论