<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aa211314的专栏]]></title><description><![CDATA[仁者无情]]></description><link>https://blog.youkuaiyun.com/aa211314</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aa211314]]></copyright><item><title><![CDATA[垃圾回收器]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2234415</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2234415</guid><author>aa211314</author><pubDate>Mon, 31 Mar 2008 23:36:00 +0800</pubDate><description><![CDATA[引言在前文，我们引入了GC Allocator（具备垃圾回收能力的Allocator），并提供了一个实作：AutoFreeAlloc（详细内容参见《C++内存管理变革(2)：最袖珍的垃圾回收器 - AutoFreeAlloc》）。但是，如前所述，AutoFreeAlloc是有其特定的适用环境的（它对内存管理的环境进行了简化，这种简化环境是常见的。详细参阅《C++内存管理变革(3)：另类内存]]></description><category></category></item><item><title><![CDATA[简单实用的线程管理类 ]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2234401</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2234401</guid><author>aa211314</author><pubDate>Mon, 31 Mar 2008 23:32:00 +0800</pubDate><description><![CDATA[在开发多线程程序时，常常碰到线程管理的问题。当有多种线程的时候，为了控制每个线程，编程工作也变得复杂。事实上，我们对线程的控制大多是相似的，所以把这些控制抽象出来，形成一个可复用的程序模块，将能大大提高开发效率和代码质量。首先我们对线程的使用目的进行分析和归纳。一般来说，有如下几种：1）              独立线程。执行一项在后台完成的工作，工作频率很低，线程的生命期里只完成一项任]]></description><category></category></item><item><title><![CDATA[TCP P2P 穿越NAT的方法]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2128835</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2128835</guid><author>aa211314</author><pubDate>Thu, 28 Feb 2008 16:33:00 +0800</pubDate><description><![CDATA[Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用。NAT设备允许处于同一NAT后的多台主机共享一个公网(本文将处于同一NAT后的网络称为私网,处于NAT前的网络称为公网) IP 地址。一个私网IP 地址通过NAT设备与公网的其他主机通信。公网和私网IP地址域，如下图所示：广域网与私网示意图一般]]></description><category></category></item><item><title><![CDATA[VC++ 线程池]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2128809</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2128809</guid><author>aa211314</author><pubDate>Thu, 28 Feb 2008 16:27:00 +0800</pubDate><description><![CDATA[ 服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高，但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。线程池的技术背景在面向对象编程中，创建和销毁对象是很费时间的，因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此，虚拟机将试图跟踪每一个对象，以便能够在对象销毁后进行垃圾回收。所以提]]></description><category></category></item><item><title><![CDATA[VC++数据库连接池]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2128771</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2128771</guid><author>aa211314</author><pubDate>Thu, 28 Feb 2008 16:13:00 +0800</pubDate><description><![CDATA[对于连接的管理可使用空闲池。即把已经创建但尚未分配出去的连接按创建时间存放到一个空闲池中。每当用户请求一个连接时，系统首先检查空闲池内有没有空闲连接。如果有就把建立时间最长（通过容器的顺序存放实现）的那个连接分配给他（实际是先做连接是否有效的判断，如果可用就分配给用户，如不可用就把这个连接从空闲池删掉，重新检测空闲池是否还有连接）；如果没有则检查当前所开连接池是否达到连接池所允许的最大连接数（ma]]></description><category></category></item><item><title><![CDATA[VC++调用带参数的存储过程 ]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2128756</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2128756</guid><author>aa211314</author><pubDate>Thu, 28 Feb 2008 16:11:00 +0800</pubDate><description><![CDATA[最近由于工作之需，要利用VC进行一些高级的数据库操作，如执行存储过程等。遍寻网络资源发现好使的不多（经常#30XX错误，大部分应该是COM的VARIANT数据类型所致，其实有个讨巧的方法，请看下文），在自己的实验下小有所得。记下学习笔记以备参考：1 进行ADO编程的必备步骤：引入msado15.dll #import "c:/program files/common files/syste]]></description><category></category></item><item><title><![CDATA[ 内存池的简单试验（C++）]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2128747</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2128747</guid><author>aa211314</author><pubDate>Thu, 28 Feb 2008 16:08:00 +0800</pubDate><description><![CDATA[这是试验性的程序， 虽然算法实现简弱， 当在编译器优化后实验结果，性能比用全局new delete的内存管理好了很多，我这里有考虑到多线程看来在大量使用内存分配的程序，用内存池是能够显著提高性能的；有时间我会改进算法，有高手看到， 请指点一二， 我是非专业的， 算法方面很弱；还有数组的内存分配遇到了一些问题；以下数组的内存分配的一般模式void * operator new[](size_t si]]></description><category></category></item><item><title><![CDATA[数据库备份与还原处理]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2128738</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2128738</guid><author>aa211314</author><pubDate>Thu, 28 Feb 2008 16:05:00 +0800</pubDate><description><![CDATA[利用T-SQL语句,实现数据库的备份与还原的功能体现了SQL Server中的四个知识点： 1．   获取SQL Server服务器上的默认目录 2．   备份SQL语句的使用 3．   恢复SQL语句的使用，同时考虑了强制恢复时关闭其他用户进程的处理 4．   作业创建SQL语句的使用  /*1.--得到数据库的文件目录  @dbname 指定要取得目录的数据库名  ]]></description><category></category></item><item><title><![CDATA[VC++实现非窗口类中使用定时器的方法]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2036769</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2036769</guid><author>aa211314</author><pubDate>Fri, 11 Jan 2008 09:56:00 +0800</pubDate><description><![CDATA[/////////////////////////////////////////// MyTimer.h: interface for the CMyTimer class.#if !defined(AFX_MYTIMER_H__D97674D1_B221_49CD_9637_4CBA8C3180CE__INCLUDED_)#define AFX_MYTIMER_H__D97674D1_B221]]></description><category></category></item><item><title><![CDATA[VC中CShockwaveFlash的常用函数]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/2036765</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/2036765</guid><author>aa211314</author><pubDate>Fri, 11 Jan 2008 09:54:00 +0800</pubDate><description><![CDATA[Play()            播放动画  StopPlay()            停止动画  IsPlaying()            动画是否正在播放(true,false)  GotoFrame(frame_number)            跳转到某帧(frame_number+1)  TotalFrames()            获取动画总帧数  CurrentFram]]></description><category></category></item><item><title><![CDATA[界面美化]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1968389</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1968389</guid><author>aa211314</author><pubDate>Wed, 26 Dec 2007 16:50:00 +0800</pubDate><description><![CDATA[QQ软件主界面的ListCtrl 是可以说非常经典了，一个字漂亮! 这个ListCtrl的所包含的信息之丰富，更是让我们这些软件工程师望Q兴叹! 今天，我将和大家一起来解决这个难题，写一个属于自已的CMyListCtrl。                                                          一、实现MyListCtrl要完成的任务及实现]]></description><category></category></item><item><title><![CDATA[    让你的软件界面更漂亮  (VC)   ]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1968366</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1968366</guid><author>aa211314</author><pubDate>Wed, 26 Dec 2007 16:45:00 +0800</pubDate><description><![CDATA[　　　　　　　　　　　 一、漂亮界面实现的原理　　用图象元素自绘窗口标题样栏，边框，系统按钮（最大化、最小化、关闭按钮）还有按窗口中的控件。图象元素可以是位图，也可用绘图函数实现。如果用位图实现，那需要美工的支持。如果绘图函数实现需要你超强审美观和对VC绘图函数熟练掌握!。二、VC绘图技术介绍        CDC* pDisplayMemDC=new CDC;    ]]></description><category></category></item><item><title><![CDATA[STL中的map用法详解 ]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1811932</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1811932</guid><author>aa211314</author><pubDate>Fri, 05 Oct 2007 13:15:00 +0800</pubDate><description><![CDATA[Map是STL的一个关联容器，它提供一对一（其中第一个可以称为关键字，每个关键字只能在map中出现一次，第二个可能称为该关键字的值）的数据处理能力，由于这个特性，它完成有可能在处理一对一数据时，在编程上提供快速通道。介绍一下map内部数据的组织，map内部自建一颗红黑树(一种非严格意义上的平衡二叉树)，这颗树具有对数据自动排序的功能，所以在map内部所有的数据都是有序的，后面会见识到有序的好处。]]></description><category></category></item><item><title><![CDATA[API函数大全  （C++）]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1811920</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1811920</guid><author>aa211314</author><pubDate>Fri, 05 Oct 2007 12:56:00 +0800</pubDate><description><![CDATA[1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次]]></description><category></category></item><item><title><![CDATA[十万个为什么（VC++）]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1811919</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1811919</guid><author>aa211314</author><pubDate>Fri, 05 Oct 2007 12:54:00 +0800</pubDate><description><![CDATA[1） 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.（2） 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径，然后去掉可执行文件名。Example:TCHAR]]></description><category></category></item><item><title><![CDATA[什么叫真正的C++高手]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1808993</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1808993</guid><author>aa211314</author><pubDate>Mon, 01 Oct 2007 15:22:00 +0800</pubDate><description><![CDATA[自从计算机问世以来，程序设计就成了令人羡慕的职业，程序员在受人宠爱之后容易发展成为毛病特多却常能自我臭美的群体。如今在Internet上流传的“真正”的程序员据说是这样的：(1)    真正的程序员没有进度表，只有讨好领导的马屁精才有进度表，真正的程序员会让领导提心吊胆。(2)    真正的程序员不写使用说明书，用户应当自己去猜想程序的功能。(3)    真正的程序员几乎不写代码的]]></description><category></category></item><item><title><![CDATA[正确使用内存]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1808969</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1808969</guid><author>aa211314</author><pubDate>Mon, 01 Oct 2007 14:51:00 +0800</pubDate><description><![CDATA[对于初学者来说，内存是个神秘的空间。程序的绝大部分错误，也是在于内存的使用不当造成的，而且这些错误有些都是隐藏很深的。所以，如何掌握内存的使用，通晓系统对内存的管理手段，将是软件成功的一个非常关键的因素。       首先我们要了解内存的分配方式。一般来说，内存的分配方式有三种：1．从静态存储区域分配。内存在程序编译的时候就已经分配好，这块内存在程序的整个运行期间都存在。例如全局变量，]]></description><category></category></item><item><title><![CDATA[Visual C++开发工具与调试技巧整理]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1808961</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1808961</guid><author>aa211314</author><pubDate>Mon, 01 Oct 2007 14:45:00 +0800</pubDate><description><![CDATA[自己总是用VC平台来开发东西，但是有时候总是出这样那样的问题，呵呵，总是需要上网查资料来解决,在这里把自己用到上网查的一些技巧摘录如下,希望对大家有用，省去大家再去搜索的烦恼。1.如何在Release状态下进行调试Project－>Setting＝>ProjectSetting对话框，选择Release状态。C/C++标签中的Category选General，Optimizations选D]]></description><category></category></item><item><title><![CDATA[C和C++编程和学习文档]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1808930</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1808930</guid><author>aa211314</author><pubDate>Mon, 01 Oct 2007 14:26:00 +0800</pubDate><description><![CDATA[1  :指针变量名称以p为首字符，这是程序员通常在定义指针时的一个习惯2  :har * p;    (int *)p 把p强制转换为int型                          3.1 :指针的问题：指针应用时最好给予定义(初始化)这样可以保证指针的指向是程序员自己能够把握的。3.2 :指针的越界，这恐怕是最难查出的吧！                         ]]></description><category></category></item><item><title><![CDATA[UDP穿透之NAT类型分析]]></title><link>https://blog.youkuaiyun.com/aa211314/article/details/1808925</link><guid>https://blog.youkuaiyun.com/aa211314/article/details/1808925</guid><author>aa211314</author><pubDate>Mon, 01 Oct 2007 14:23:00 +0800</pubDate><description><![CDATA[ NAT，即网络地址转换，是指在一个网络内部，根据需要可以随意自定义的IP地址，而不需要经过申请。而当内部的计算机要与外部internet网络进行通讯时，NAT设备（比如：路由器）负责将其内部的IP地址转换为合法的IP地址并进行通信。从功能上来说，NAT可以分为：传统NAT，双向NAT(Bi-Directional NAT)，两次NAT(Twice NAT)，多宿主NAT(Multihom]]></description><category></category></item></channel></rss>