<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[勿在浮沙筑高台]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fdsdfdsf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fdsdfdsf]]></copyright><item><title><![CDATA[一例MSVC2013中recursive_mutex引起崩溃的原因分析]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/47054629</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/47054629</guid><author>fdsdfdsf</author><pubDate>Sat, 25 Jul 2015 11:17:21 +0800</pubDate><description><![CDATA[复现方法：CUI程序，DLL中的全局对象在析构时调用recursive_mutex::lock()函数，运行时通过Ctrl+C触发。


原因分析：DLL被释放时，会自动析构所有的全局对象。由于Ctrl+C的实现为系统创建一个远程线程调用dllmain并析构全局对象，而这个远程线程缺少一些必要的初始化过程，造成recursive_mutex::lock()函数崩溃。


以下是分析时的]]></description><category></category></item><item><title><![CDATA[OpenSSL裁剪编译]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/38661769</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/38661769</guid><author>fdsdfdsf</author><pubDate>Mon, 18 Aug 2014 15:45:18 +0800</pubDate><description><![CDATA[一、准备事项：
1. http://www.curl.haxx.se/ 下载 cURL 源码，\projects\build-openssl.bat 即 OpenSSL 的编译批处理。
2. http://www.openssl.org/ 下载 OpenSSL 源码。


二、重要文件：
1. \ms\do_ms.bat 生成 mak 文件的批处理。
2. \ms\nt.mak 静态]]></description><category></category></item><item><title><![CDATA[几种文本相似度算法的C++实现]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/26735227</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/26735227</guid><author>fdsdfdsf</author><pubDate>Fri, 23 May 2014 18:55:37 +0800</pubDate><description><![CDATA[1、最小编辑距离]]></description><category></category></item><item><title><![CDATA[HTTP劫持与DNS穿透]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/25071981</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/25071981</guid><author>fdsdfdsf</author><pubDate>Mon, 05 May 2014 18:30:11 +0800</pubDate><description><![CDATA[客户端软件经常会采用HTTP协议与服务器进行通讯。大多数情况下，服务器会要求客户端使用域名而不是IP。这样就存在“HTTP劫持”的问题，恶意程序在本地或者路由重定向域名所指的IP，以达到欺骗客户端的目的。
使用“DNS穿透”技术解决“HTTP劫持”：
1、客户端通过访问OpenDNS服务器或者PrivateDNS服务器进行域名解析；
2、用域名解析所得到的IP地址替换原始域名；
3、在HT]]></description><category></category></item><item><title><![CDATA[高性能并发队列（C++实现）]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/24806585</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/24806585</guid><author>fdsdfdsf</author><pubDate>Wed, 30 Apr 2014 17:45:50 +0800</pubDate><description><![CDATA[算法参考：http://www.parallellabs.com/2010/10/25/practical-concurrent-queue-algorithm/


注意：析构]]></description><category></category></item><item><title><![CDATA[CAB文件压缩解压封装类]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/24322635</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/24322635</guid><author>fdsdfdsf</author><pubDate>Tue, 22 Apr 2014 18:46:45 +0800</pubDate><description><![CDATA[Windows Cabinet APIfeng


下载地址：]]></description><category></category></item><item><title><![CDATA[函数static变量的线程竞争问题]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/18446881</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/18446881</guid><author>fdsdfdsf</author><pubDate>Sat, 18 Jan 2014 11:37:01 +0800</pubDate><description><![CDATA[比如，单例模式一个简单实现：
class CSingleton
{
public:
	static CSingleton* GetInstance()
	{
		static CSingleton *pInstance = new CSingleton();
		return pInstance;
	}

	void PrintText()
	{
		std::cout << "Hello Wo]]></description><category></category></item><item><title><![CDATA[高精度定时器（Windows）]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/18144299</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/18144299</guid><author>fdsdfdsf</author><pubDate>Sat, 11 Jan 2014 17:32:27 +0800</pubDate><description><![CDATA[一个高精度定时器的C++实现。
下载地址：http://download.youkuaiyun.com/detail/fdsdfdsf/6837703]]></description><category></category></item><item><title><![CDATA[tr1::bind与tr1::function的用法与具体应用]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/17453693</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/17453693</guid><author>fdsdfdsf</author><pubDate>Fri, 20 Dec 2013 20:33:28 +0800</pubDate><description><![CDATA[关于tr1::bind及tr1::function的用法，请参考：http://blog.sina.com.cn/s/blog_5eb8ebcb0100tcty.html
以下是实际工程中的代码，用于非窗口类（比如DirectUI库的页面类，这些类并不包含可以用来接收消息m_hWnd成员）创建一个隐藏窗口，并绑定成员方法到这个隐藏窗口的消息处理函数上。
class CMessageWindow]]></description><category></category></item><item><title><![CDATA[stringex - STL string 扩展库]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/9906627</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/9906627</guid><author>fdsdfdsf</author><pubDate>Sun, 11 Aug 2013 22:55:37 +0800</pubDate><description><![CDATA[std::string format(const char *fmt, ...)
	{
		va_list arg;
		va_start(arg, fmt);

		int len = _vscprintf_p(fmt, arg) + 1;
		std::auto_ptr<char> buf(new char[len]);
		_vsprintf_p(buf.get(), len, fmt, arg);
		va_end(arg);

		return buf.get();
	}

	std::strin]]></description><category></category></item><item><title><![CDATA[快速MD5计算]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/9358813</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/9358813</guid><author>fdsdfdsf</author><pubDate>Wed, 17 Jul 2013 18:11:32 +0800</pubDate><description><![CDATA[由Windows API实现的一个MD5计算函数，在Windows平台上比其他开源的MD5库快20%以上。
下载地址：http://download.youkuaiyun.com/detail/fdsdfdsf/5771707]]></description><category></category></item><item><title><![CDATA[Windows对话框程序的大小与DPI的关系]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/8855292</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/8855292</guid><author>fdsdfdsf</author><pubDate>Fri, 26 Apr 2013 17:02:57 +0800</pubDate><description><![CDATA[1、DPI：每英寸像素数。英寸是物理单位，像素是逻辑单位。
2、Windows对话框程序有两种方式可以改变界面尺寸：(1)RC文件中定义对话框时设定的数值。单位是DLU，与对话框设定的字体大小成正比。(2)在WM_INITDIALOG消息中调用SetWindowPos函数。单位是像素。
3、Windows字体单位是磅，1英寸等于72磅。当DPI改变时，字体大小会随之改变。因此，采用方式(1)定]]></description><category></category></item><item><title><![CDATA[INI文件解析类]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/8755138</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/8755138</guid><author>fdsdfdsf</author><pubDate>Wed, 03 Apr 2013 11:42:59 +0800</pubDate><description><![CDATA[INI文件解析类，支持文件INI、内存INI，支持ANSI、UCS-2 Little Endian编码。
1.0.0.4更新：
(1)修改错误。
(2)调整代码。
欢迎留言讨论。
下载地址：http://download.youkuaiyun.com/detail/fdsdfdsf/7103173]]></description><category></category></item><item><title><![CDATA[Windows程序的模块之间为什么不能使用STL容器作为参数]]></title><link>https://blog.youkuaiyun.com/fdsdfdsf/article/details/8617316</link><guid>https://blog.youkuaiyun.com/fdsdfdsf/article/details/8617316</guid><author>fdsdfdsf</author><pubDate>Wed, 27 Feb 2013 13:27:55 +0800</pubDate><description><![CDATA[理论基础：
1、Windows平台的C++ Runtime Library分为两种：Multi-threaded和Multi-threaded DLL。前者是静态库，会被链接到目标程序中；后者是动态链接库，目标程序运行时动态加载。
2、Windows堆内存分为两类：默认堆和私有堆。其中默认堆在同一进程中可以跨模块访问，而私有堆只能在所属模块中进行访问。
3、C++ Runtime Libra]]></description><category></category></item></channel></rss>