- 博客(59)
- 收藏
- 关注
原创 My C++ Wrapper for FreeTDS
This artical introduce you my C++ wrapper for FreeTDS MSSqlServer interface.With this wrapper you can easily connect/disconnect sqlserver database, and execute insert/delete/update/select/create table commands.This wrapper is not thread-safe and not fully
2011-05-25 14:38:00
2769
原创 linux connect mssqlserver
let the linux programm connect to mssqlserver, install the third library - freetds.here are the steps to make it work, don't ask why, just have a try.1,setup unixODBC./configure --prefix=/user/local/unixODBCmakemake install2,setup freetds./configure --pref
2011-05-17 18:46:00
1592
原创 POCO实现的reactor模式
曾经维护维护过一个服务器项目有用到ACE,也是第一次从中学习到reactor和proactor两种并发模式,但仅限于用,而且linux上只用reactor,据说是linux系统本身对异步I/O支持程度等各种因素影响了proactor,关于windows上的ACE应用还得承认孤陋寡闻没见过,好像大家都宁愿用IOCP自己封装一套(本质跟proactor差不多了)。由于ACE源码可读性较差,项目没出现大问题也就懒得去细读其源码了。现在终于发现了一个可读性不错的网络库poco,作者面向对象的功底很深厚,值得细读。我
2011-05-13 17:29:00
6739
原创 临时对象的隐蔽性与野指针不崩之谜
C++危险众所周知,项目中写代码写得天昏地暗的时候就容易踩陷阱。不是我故意耍小聪明,是进度的紧迫性和头脑的疲惫程度导致我写了这样的代码(代码经过简单处理,隐去复杂性以及不涉密。^_^):char* tmpS=const_cast(string("hello").c_str());cout输出什么?"hello"。多悲剧的回答,答案是仅有一个换行符而已。因为临时对象string在调用流的时候析构掉了!(这个结论最后有代码验证。)所以这种情况就正常了:cout(string("hello").c_str())疑
2011-05-13 12:46:00
1296
1
原创 从一串由指定分割符分隔的串中查找子串
用strtok之前以为用strstr不用循环,结果经测试还是需要有循环,根据80-20原则,所以两种方法的性能未经测试对比,就选了strtok可读性较强的方法,strstr的方法抛之可惜,放到此处保留一下。bool FindToken(char* token,char* blacklist,char delimiter){ int tokenLen=strlen(token); int blacklistLen=strlen(blacklist); char* idx=strstr(bl
2011-05-13 11:16:00
623
原创 wstring与string互转
参考:http://www.velocityreviews.com/forums/t503692-i-need-help-for-std-codecvt.htmlstatic string to_string(const wstring& str, const locale& loc = std::locale("")){ typedef codecvt codecvt_t; const codecvt_t& cc = use_facet(loc); mbstate_t state = mbstate_t(
2011-04-13 00:06:00
987
原创 linux下转换charset
linux下转charset,由于不知道utf8一个字符有多长,所以不知道转换后的串有多长,开大缓冲是一个办法,但是如果输入太大并且并发较高的话有占用内存太大的问题。方案暂时折中为对文件采用命令转换,消息采用大缓冲方式iconv()来转换。不敢全部用命令,开销大。//utf8文件转为gb2312文件int utf8_to_gb2312_file(char* szUtf8FileName,char* szGb2312FileName){ if(szUtf8FileName==NULL || szG
2011-04-07 16:29:00
986
原创 POCO中的Socket分析
GoF的书描述bridge模式为很多人诟病,指其描述太抽象难懂,POCO库中的socket wrapper就对bridge模式进行了完美的使用展示,上图。
2011-03-31 17:43:00
3494
原创 POCO中Event同步对象的POSIX实现
POCO1.4.1p1中Event同步对象的POSIX实现不够严谨,WIN32实现直接采用windows提供的event对象,而POSIX下采用条件变量模拟事件,但是没有考虑到cancellation point的问题,可能导致程序行为异常,下面代码注释的pthread_cleanup_push和pthread_cleanup_pop是我加上的,项目中放开这两个注释后暂时未重现异常问题。void EventImpl::waitImpl(){ //pthread_cleanup_push(pthrea
2011-03-29 18:22:00
1820
原创 POCO中的TCPServer分析
工作中要维护一个用POCO写的服务器,出现了问题,翻江倒海没找到出错的地方,于是只好看看POCO的源码了。幸好POCO的源码很清晰易懂,比ACE清爽多了。以下是我在阅读过程中为TCPServer画的类图。
2011-03-29 18:12:00
3529
原创 ACE的Service Configurator使用心得
ACE的Service Configurator优雅地实现了各种服务/daemon的统一配置。原理其实就是实现了一套插件系统。感觉配置文件的格式比较过时,没有采用xml方式。动态服务的初始化配置:dynamic service_name type_of_service * location_of_lib:name_of_object "parameters"1.service_name自己定义。2.type_of_service一般是Service_Object,估计是服务继承自ACE_Service_Ob
2011-03-17 11:41:00
1012
原创 qt工程加入libnids
LIBS += F:/MyProjects/qt_libnids/lib/libpcap.lib / F:/MyProjects/qt_libnids/lib/libnids.lib / F:/MyProjects/qt_libnids/lib/WS2_32.Lib / F:/MyProjects/qt_libnids/lib/wpcap.lib / F:/MyProjects/qt_libnids/lib/bufferoverflowu.lib
2010-08-14 11:29:00
1128
原创 qtcreator项目如何使用winpcap
因为项目需要,需要用到Qt+Winpcap。IDE用Qt Creator。1、下载winpcap安装程序,运行基于winpcap的程序需要其支持。2、下载winpcap的开发包,用于开发。3、把winpcap开发包中的Include目录下的所有内容拷贝到qt的mingw/include目录下。4、把winpcap开发包中的Lib目录下的Packet.lib和wpcap.lib拷贝到工程目录下。5、工程pro文件中添加一行"LIBS+=Packet.lib wpcap.lib"。
2010-06-15 01:13:00
6827
2
原创 MBCS和UNICODE
char ipport[50]={0};//inet_ntoa返回内部数组,多次调用会被覆盖sprintf(ipport,"%s:%d",inet_ntoa(addrClient.sin_addr),ntohs(addrClient.sin_port));wchar_t w_ipport[50]={0};mbstowcs(w_ipport,ipport,50);//#include
2010-05-26 00:23:00
673
原创 ado操作store procedure的wrapper
随手写写,有待加强。 YTAdo.h//****************************************************************************************************************************************************************// 文件: YTAdo
2010-05-24 09:15:00
1015
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅