<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tompaz的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tompaz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tompaz]]></copyright><item><title><![CDATA[vc crt的malloc相关]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6675433</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6675433</guid><author>tompaz</author><pubDate>Wed, 10 Aug 2011 13:10:23 +0800</pubDate><description><![CDATA[http://www.olivierlanglois.net/CFixAlloc.html


VC\crt\src下面有具体的malloc实现，是直接调用heap系列函数，没有glibc的内存池的概念，而且开销巨大，以前从没注意过这一点]]></description><category></category></item><item><title><![CDATA[crgn相关]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6657694</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6657694</guid><author>tompaz</author><pubDate>Wed, 03 Aug 2011 17:58:10 +0800</pubDate><description><![CDATA[crgn直接调用的hrgn,
具体保存数据的是
typedef struct _RGNDATAHEADER
    {
    DWORD dwSize;
    DWORD iType;
    DWORD nCount;
    DWORD nRgnSize;]]></description><category></category></item><item><title><![CDATA[转：mem]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6625466</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6625466</guid><author>tompaz</author><pubDate>Fri, 22 Jul 2011 12:49:49 +0800</pubDate><description><![CDATA[最后一种内存问题是 Stack corruption 和 Stackoverrun。stack overrun 很简单，一般是由于递归函数缺少结束条件导致，使得函数调用过深把 stack 地址用光，比如下面的代码：Void foo(){Foo();}只要在调试器里重现问题，调试器]]></description><category></category></item><item><title><![CDATA[使用vc发现的一些问题记录]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6616701</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6616701</guid><author>tompaz</author><pubDate>Tue, 19 Jul 2011 13:31:07 +0800</pubDate><description><![CDATA[今天又发现了一个无法得到变量的原因，一并整理如下1，就是最简单，删除pdb重建2，从网上下的一份代码，某个文件总是得不到变量，对比查找发现多了几个pragma设置，注释掉//#ifdef _AFX_MINREBUILD//#pragma component(minrebuild,]]></description><category></category></item><item><title><![CDATA[记录一些对mfc理解以前比较模糊的东西]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6605572</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6605572</guid><author>tompaz</author><pubDate>Thu, 14 Jul 2011 14:25:00 +0800</pubDate><description><![CDATA[对mfc的消息机制很不理解，花了一天时间粗看了下李久进和侯捷的深入浅出又从网上搜了部分，http://www.cppblog.com/nacci/category/1784.html理解和摘抄部分整理如下1，rtti机制，这个就是每个类都定义一个静态变量，里面有父类的这个静态变量]]></description><category></category></item><item><title><![CDATA[windows gdi相关（摘录） +windows窗口]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6592673</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6592673</guid><author>tompaz</author><pubDate>Fri, 08 Jul 2011 14:11:48 +0800</pubDate><description><![CDATA[在处理非WM_PAINT消息时，应用程序获取窗口用户区设备描述表句柄使用GetDC函数，它常常用来对用户的某些动作提供反馈。例如，当用户移动鼠标光标穿越窗口时，在屏幕上画一条线。GetDC函数返回一个显示缓冲区句柄，它可以用于任何GDI输出函数。使用GetDC函数获得显示缓冲区句]]></description><category></category></item><item><title><![CDATA[iwebbrowser的一些方法]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6571990</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6571990</guid><author>tompaz</author><pubDate>Tue, 28 Jun 2011 11:07:00 +0800</pubDate><description><![CDATA[get_FullName获取容器应用程序的文件名，包括绝对目录get_Type 获取网页类型，比如Html typeget_Busy 获取是否正在解析状态get_LocationName 获取title，跟ontitlechange的最后一次一致get_LocationURL  获取网页url,跟ontitlechange的最后一次一致get_Application 获取iwe]]></description><category></category></item><item><title><![CDATA[VC之美化界面篇（转载）]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6563855</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6563855</guid><author>tompaz</author><pubDate>Thu, 23 Jun 2011 16:33:00 +0800</pubDate><description><![CDATA[  VC之美化界面篇（转载） 收藏 关键词界面美化 摘要本文专题讨论VC中的界面美化，适用于具有中等VC水平的读者。读者最好具有以下VC基础：1. 大致了解MFC框架的基本运作原理；2. 熟悉Windows消息机制，熟悉MFC的消息映射和反射机制；3. 熟悉OOP理论和技术；本文根据笔者多年的开发经验，并结合简单的例子一一展开，希望对读者有所帮助。]]></description><category></category></item><item><title><![CDATA[chrome之view之animate]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6561712</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6561712</guid><author>tompaz</author><pubDate>Wed, 22 Jun 2011 17:46:00 +0800</pubDate><description><![CDATA[chrome的动画机制 动画首先需要创建一个容器，负责时间调度，这里是AnimationContainer这个类里面使用的是base::RepeatingTimer来开设置settimer，然后回调到run()timer_.Start(min_timer_interval_, this, &AnimationContainer::Run);run(){  Ele]]></description><category></category></item><item><title><![CDATA[读fastdelegate和sigslot]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6556052</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6556052</guid><author>tompaz</author><pubDate>Mon, 20 Jun 2011 13:30:00 +0800</pubDate><description><![CDATA[分别来自与sourceforge和codeprojectsigslot的运行方式比较容易理解，就是将对象指针和函数指针保存到连表里，然后调用的时候再取出来执行fastdelegate看他的文档看的一头雾水，看完了也没弄清楚作者说的为啥快和快到哪里去了，只是内存消耗确实变少了因为他将所有的虚函数，多重继承等的this指针做了个复杂的取实际地址操作，所以他的一次bind只需要8个字节就够了但是除内存外]]></description><category></category></item><item><title><![CDATA[chrome之view]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6545792</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6545792</guid><author>tompaz</author><pubDate>Wed, 15 Jun 2011 11:52:00 +0800</pubDate><description><![CDATA[看了点其他东西，结果发现以前看的chrome代码有些忘了，看来写博客确实是好事，能帮助人很容易的回忆起来 chrome的是基于wtl的，他的view类比较庞大，具体的子类又分为native和customnative就是windows的自有空间，比如button,custom的就是directui了，界面里划分出不同的区域，区域显示出类似button的效果以radiobutton为例]]></description><category></category></item><item><title><![CDATA[chrome之ipc]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6529648</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6529648</guid><author>tompaz</author><pubDate>Tue, 07 Jun 2011 14:59:00 +0800</pubDate><description><![CDATA[上来就被这个复杂的define给搞迷糊了，看了http://www.cnblogs.com/duguguiyu/archive/2008/10/04/1303695.html的解释，在对照就好多了，不过他的介绍里有些错误，而且一些关键点没有写最牛逼的就是自动生成id和挂钩Id了，用mfc的人都知道，自定义消息的时候都要去写um_xx这种定义，然后要写messagemap,再写实现，chro]]></description><category></category></item><item><title><![CDATA[关于TLSAlloc() (2011-05-01 00:02:46)转载]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6457350</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6457350</guid><author>tompaz</author><pubDate>Tue, 31 May 2011 16:35:00 +0800</pubDate><description><![CDATA[
标签： tls it	分类： C/Cxx
为什么要有TLS？原因在于，进程中的全局变量与函数内定义的静态(static)变 量，是各个线程都可以访问的共享变量。在一个线程修改的内存内容，对所有线程都生效。这是一个优点也是一个缺点。说它是优点，线程的数据交换变得非常快 捷。说它是缺点，一个线程死掉了，其它线程也性命不保; 多个线程访问共享数据，需要昂贵的同步开销，也容易造成同步相关的BUG。
　　如果需要在一个线程内部的各个函数调用都能访问、但其它线程不能访问的变量（被称为static memory ]]></description><category></category></item><item><title><![CDATA[准备看的书]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6436165</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6436165</guid><author>tompaz</author><pubDate>Sat, 21 May 2011 11:09:00 +0800</pubDate><description><![CDATA[程序员的自我修养modern c++ thinking in c++]]></description><category></category></item><item><title><![CDATA[libtorrent协议略查]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6434497</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6434497</guid><author>tompaz</author><pubDate>Fri, 20 May 2011 14:36:00 +0800</pubDate><description><![CDATA[<br />首先发送一串B编码给指定的服务器，这个可以通过设定traker或者dht来指定这个服务器<br />session_handle.add_dht_router(std::make_pair(std::string("bt.teyouqu.com"), 6681));<br />发送内容<br />http://bt.teyouqu.com:2710/announce?info_hash=%8e%8c%da%a1%f1%83%3b%f6qv%f23%eeF%cf%e7dR%bbH&peer_id=]]></description><category></category></item><item><title><![CDATA[vs2005调试无法命中断点问题，0x09]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6432252</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6432252</guid><author>tompaz</author><pubDate>Thu, 19 May 2011 15:31:00 +0800</pubDate><description><![CDATA[<br />突然间某个文件断点失效了，幸好用的svn，还有老点的版本，对比了下，文本方式完全相同也不行，但是二进制下<br />0x09制表符很多地方不一样，也不知道怎么产生出来的，使用编辑－〉高级－〉将制表符替换为空格<br />然后解决，很是奇怪，看来vs2005 bug不少啊，前几天碰到的是utf8乱码也很恶心]]></description><category></category></item><item><title><![CDATA[慢读chrome(base)]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6430223</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6430223</guid><author>tompaz</author><pubDate>Wed, 18 May 2011 17:40:00 +0800</pubDate><description><![CDATA[cryptto 加解密的，太专业json  json解析的atexit.cc，顺便可以看一下crt0.c了解下程序的启动和关闭过程程序退出前做动作的，通过超出变量范围时调用析构，执行事先注册在一个栈变量的函数，具体是执行的啥没看过首先其他函数调用RegisterCallback然后退出前具体执行 ProcessCallbacksNow();base_switches.cc一些设置选项怎么用还待查namespace switches {
// If the program includes chrome/c]]></description><category></category></item><item><title><![CDATA[I18N、L10N、G11N的区别？]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6428780</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6428780</guid><author>tompaz</author><pubDate>Wed, 18 May 2011 10:13:00 +0800</pubDate><description><![CDATA[<br /><br />I18N
－－是“Internationalization”
的缩写，由于 “Internationalization”
单词较长，所以为了书写简便，通常缩写为“I18N”
。中间的 18
 代表在首字母“I”
和尾字母“N”
之间省略了 18
 个字母。单词“Internationalization”
翻译成中文是“
国际化”
的意思－是使产品或软件具有不同国际市场的普遍适应性，从而无需重新设计
就可适应多种语言和文化习俗的过程。真正的国际化要在软件设计和文]]></description><category></category></item><item><title><![CDATA[慢读chrome]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6427301</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6427301</guid><author>tompaz</author><pubDate>Tue, 17 May 2011 16:32:00 +0800</pubDate><description><![CDATA[先从base读，clipboard：设计了多个类型的剪贴板操作函数，只能globalalloc分配数据，不能globalfree，否则其他线程是拿不到这个剪贴板的数据的，具体的globalfree估计是在emptyclipboard上做的，全局只有这么一个剪贴板]]></description><category></category></item><item><title><![CDATA[转：VC非模态对话框创建和销毁]]></title><link>https://blog.youkuaiyun.com/tompaz/article/details/6417613</link><guid>https://blog.youkuaiyun.com/tompaz/article/details/6417613</guid><author>tompaz</author><pubDate>Fri, 13 May 2011 16:09:00 +0800</pubDate><description><![CDATA[<br />非模态对话框相对于模态对话框，他的创建和销毁过程和模态对话框有一定的区别 <br /><br />先看一下MSDN的原文：<br /><br />When   you   implement   a   modeless   dialog   box,   always   override   the   OnCancel   member   function   and   call   DestroyWindow   from   within   it.   Don’t   call ]]></description><category></category></item></channel></rss>