<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/tingsking18" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/tingsking18" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 10 Feb 2010 02:11:00 GMT</lastBuildDate><title>我一路走来---</title><description>哥写的不是代码，是寂寞。</description><link>http://blog.csdn.net/blogrss.aspx?username=tingsking18</link><item><title>在Qt中使用sleep</title><link>http://blog.csdn.net/tingsking18/archive/2010/02/10/5304254.aspx</link><description>在Qt中使用sleep

关于sleep函数，我们先来看一下他的作用：sleep函数是使调用sleep函数的线程休眠，线程主动放弃时间片。当经过指定的时间间隔后，再启动线程，继续执行代码。sleep函数并不能起到定时的作用，主要作用是延时。在一些多线程中可能会看到sleep(0);其主要目的是让出时间片。sleep函数的精度非常低，当系统越繁忙的时候它精度也就越低，有时候我们休眠1秒，可能3秒后才能继续执行。它的精度取决于线程自身优先级、其他线程的优先级，以及线程的数量等因素，所以说sleep函数是不能用来精确计时的。&lt;img src=&quot;http://www1.feedsky.com/t1/331515229/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/02/10/5304254.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515229/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515229/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 10 Feb 2010 10:11:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/02/10/5304254.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/02/10/5304254.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515229/1047042</fs:itemid></item><item><title>Google百度和谷歌的那些事</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/16/5200543.aspx</link><description>作者：virushuo 发表于 2010-01-14 22:01 最后更新于 2010-01-15 00:01


转自：http://blog.devep.net/virushuo/2010/01/14/blog56google_blogtinyfool_1_go.html

很久不在这个blog上写和技术无关的东西了，尤其不想写跟业界有关的东西，觉得太空，太忽悠，对别人没价值。但这次，我想写写这5，6年对google和百度的一些观察心得。这里面，这里面存在大量的个人推论，我并不能担保完全正确，请只当作是一次思想的碰撞。

这篇blog主要由我完成，Tinyfool提出了大量修改意见，亦有重要贡献。&lt;img src=&quot;http://www1.feedsky.com/t1/331515230/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/16/5200543.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515230/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515230/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sat, 16 Jan 2010 19:49:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/16/5200543.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/16/5200543.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515230/1047042</fs:itemid></item><item><title>发现QtCreator一个bug</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/16/5197668.aspx</link><description>版本：Qt Creator1.2.1 
系统：winXP pro 32位 简体中文
安装文件名称：qt-sdk-win-opensource-2009.03.1.exe
Qt版本：4.5.2
把工程放到含有中文的目录下，在编译的时候找不到qmake
这是Ouput的信息：
Running build steps for project test...
Starting: C:/Qt/qt/bin/qmake.exe C:/测试/test/test.pro -spec win32-g++ -r 
Cannot find file: c:\测试\test\test.pro.
Exited with code 2.

Error while building project test
When executing build step 'QMake'
初步估计是没有对pro文件的路径进行unicode转换导致。&lt;img src=&quot;http://www1.feedsky.com/t1/331515231/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/16/5197668.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515231/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515231/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sat, 16 Jan 2010 09:00:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/16/5197668.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/16/5197668.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515231/1047042</fs:itemid></item><item><title>QT源码解析(六）Qt信号槽机制与事件机制的联系</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/08/5157811.aspx</link><description>在QT源码解析(三）深入剖析QT元对象系统和信号槽机制（续）文章中遗留了一个问题，就是当signal和slot的连接为Qt::QueuedConnection，这时候这个连接是怎么分发处理的。下面就结合一下Qt的源

代码来分析一下。&lt;img src=&quot;http://www1.feedsky.com/t1/331515232/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/08/5157811.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515232/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515232/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 08 Jan 2010 13:47:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/08/5157811.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/08/5157811.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515232/1047042</fs:itemid></item><item><title>delphi使用COM控件的时候是否需要CoInitialize</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/06/5140565.aspx</link><description>delphi使用COM控件的时候是否需要CoInitialize

MSDN上CoInitialize的解释：
Initializes the COM library on the current apartment and identifies the concurrency model as single-thread apartment (STA). Applications must initialize the COM library before they can call COM library functions other than CoGetMalloc and memory allocation functions.&lt;img src=&quot;http://www1.feedsky.com/t1/331515233/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/06/5140565.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515233/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515233/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 06 Jan 2010 10:34:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/06/5140565.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/06/5140565.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515233/1047042</fs:itemid></item><item><title>封装Log4cplus后不能记录行号的问题</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/06/5139761.aspx</link><description>封装Log4cplus后不能记录行号的问题
在使用Log4cplus的时候，在配置文件中配置了%l，就是记录日志信息所在的文件和行号。我们可以直接LOG4CPLUS_ERROR(logger,LogMsg);来进行日志记录了。这样日志信息里面就会有我们日志信息所在文件和行号。
但是有的时候我们可能需要对log4cplus进行封装，封装后的代码可能会像下面的样子：
void _LogError(const char* fmt, ...	)
{
	char LogMsg[4096];
	int		strlen;   
	memset(LogMsg,0x00,sizeof(LogMsg));
	
	va_list	ap; 
	va_start(ap,   fmt);   
	strlen	=	vsprintf(LogMsg,   fmt,   ap);   
	va_end(ap);  
	LOG4CPLUS_ERROR(logger,LogMsg);
	return ;
	
}&lt;img src=&quot;http://www1.feedsky.com/t1/331515234/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/06/5139761.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515234/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515234/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 06 Jan 2010 08:56:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/06/5139761.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/06/5139761.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515234/1047042</fs:itemid></item><item><title>QT源码解析 文章索引</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/04/5128390.aspx</link><description>QT源码解析 文章索引&lt;img src=&quot;http://www1.feedsky.com/t1/331515228/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/04/5128390.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515228/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515228/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 04 Jan 2010 11:37:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/04/5128390.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/04/5128390.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515228/1047042</fs:itemid></item><item><title>QT源码解析(五）QLibrary跨平台调用动态库的实现</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/04/5128307.aspx</link><description>1)win下动态库调用有关的函数包括： 
(1)LoadLibrary，装载动态库。 
(2)GetProcAddress，获取要引入的函数，将符号名或标识号转换为DLL内部地址。 
(3)FreeLibrary，释放动态链接库。
2)unix上与动态库调用有关的函数包括：
(1)_打开动态链接库：dlopen，函数原型void *dlopen (const char *filename, int flag); 
dlopen用于打开指定名字(filename)的动态链接库，并返回操作句柄。 
(2)取函数执行地址：dlsym，函数原型为: void *dlsym(void *handle, char *symbol); 
dlsym根据动态链接库操作句柄(handle)与符号(symbol)，返回符号对应的函数的执行代码地址。 
(3)关闭动态链接库：dlclose，函数原型为: int dlclose (void *handle); 
dlclose用于关闭指定句柄的动态链接库，只有当此动态链接库的使用计数为0时,才会真正被系统卸载。 
(4)动态库错误函数：&lt;img src=&quot;http://www1.feedsky.com/t1/331515235/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/04/5128307.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515235/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515235/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 04 Jan 2010 11:27:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/04/5128307.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/04/5128307.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515235/1047042</fs:itemid></item><item><title>QT源码解析(四）剖析Qt的事件机制原理</title><link>http://blog.csdn.net/tingsking18/archive/2010/01/04/5127507.aspx</link><description>在用Qt写Gui程序的时候，在main函数里面最后依据都是app.exec();很多书上对这句的解释是，使Qt程序进入消息循环。下面我们就到exec()函数内部，来看一下他的实现原理。
Let's go!&lt;img src=&quot;http://www1.feedsky.com/t1/331515236/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2010/01/04/5127507.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515236/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515236/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 04 Jan 2010 10:06:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2010/01/04/5127507.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2010/01/04/5127507.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515236/1047042</fs:itemid></item><item><title>Qt3和Qt4版本差异带来的问题和解决方法</title><link>http://blog.csdn.net/tingsking18/archive/2009/12/31/5112323.aspx</link><description>Qt3和Qt4两个版本存在很大的差异，这也给我们使用带来了很大的挑战。下面我结合一下我在实际编程过程中遇到的问题来总结一下如何更好的使用Qt3和Qt4两个版本来进行编程。Qt的版本不断更新，现在最新的版本是4.6。&lt;img src=&quot;http://www1.feedsky.com/t1/331515237/tingsking18/csdn.net/s.gif?r=http://blog.csdn.net/tingsking18/archive/2009/12/31/5112323.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/tingsking18/331515237/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/tingsking18/331515237/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 31 Dec 2009 13:35:00 +0800</pubDate><author>tingsking</author><guid isPermaLink="false">http://blog.csdn.net/tingsking18/archive/2009/12/31/5112323.aspx</guid><dc:creator>tingsking</dc:creator><fs:srclink>http://blog.csdn.net/tingsking18/archive/2009/12/31/5112323.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/tingsking18/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/tingsking18/~1047042/331515237/1047042</fs:itemid></item></channel></rss>