馨荣家园

室主感言:可以走错路,不可不走路,也不可总踩别人脚印走路。

  VC知识库BLOG :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  51 随笔 :: 5 文章 :: 1326 评论 :: 18 Trackbacks
<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

News

阿荣陋室更名为馨荣家园,寓指温馨和繁荣。

留言簿(195)

随笔分类

随笔档案

文章分类

文章档案

相册

友情链接

搜索

最新评论

阅读排行榜

评论排行榜

在Windows程序设计中,句柄是无法精确定义的术语。随便找一个高手,让他给你讲讲句柄是什么,恐怕他都很难给你一个具体的定义来。

在Windows程序设计中,句柄无所不在,窗口有窗口的句柄HWND,线程和进程也有句柄HANDLE,甚至有人把套接字也称为句柄(我就是这样的)。

句柄在英文中是handle,作为动词讲是处理的意思。简而言之,句柄是处理对象的一个接口,对于程序中所涉及的对象,你可以通过句柄去操作他。你不应该试图去回答句柄是什么,而应该从务虚的角度去理解他,知道他干什么即可。

有人说,因为handle的定义是void *,因此他是一个指针。有些熟悉内核的人说这是一个索引。这些说法都是不准确的。需要注意的是,微软并没有精确定义句柄的含义,也许在某个特殊的操作系统中,他使用了一种内部含义,但是在其他版本中,就不保证这样了。任何对句柄的内在假设都可能导致灾难性的后果。

API是接口,句柄是接口,两者有什么区别?API是一个通用的函数族,他处理所有的对象,而句柄是和某个具体对象相关联的数据结构。只有借助句柄,API才知道处理哪个对象。

有些对象有ID。句柄表示特殊的对象,ID也表示某个对象,为什么要两个东西来表示?

首先,句柄不能唯一表示对象。一个对象可以有多个句柄。例如:假设我们用CreateProcess创建一个进程,该进程的第一个线程的句柄会返回给调用CreateProcess的进程。同时,在新创建的进程中,该线程也会有一个句柄。这样,这个线程就有两个句柄。我们也可以用DuplicateHandle复制一个句柄,这个句柄和原来句柄是不一样的,但是他们都表示同一个对象。而每个有ID的对象,在系统范围内,ID肯定是唯一的。

其次,句柄所能实现的功能ID不能实现。毕竟ID只是一个数字,他不能记录很多信息。而句柄可能在其内部结构中记录了很多信息(如权限、有无信号等)。

总之,如果试图解释他到底是什么,学习句柄就会误入歧途。从虚的角度去理解,对于新手是难一点,但是这也许是唯一正确的办法。
posted on 2005-03-19 16:23 馨荣家园 阅读(18223) 评论(105)  编辑 收藏

评论

# 附送createprocess的进程对象结构, 2005-03-19 16:28 七猫的垃圾箱
typedef struct _KPROCESS {

//
// The dispatch header and profile listhead are fairly infrequently
// referenced, but pad the process to a 32-byte boundary (assumption
// that pool block allocation is in units of 32-bytes).
//

DISPATCHER_HEADER Header;
LIST_ENTRY ProfileListHead;

//
// The following fields are referenced during context switches.
//

ULONG_PTR DirectoryTableBase[2];

#if defined(_X86_)

KGDTENTRY LdtDescriptor;
KIDTENTRY Int21Descriptor;
USHORT IopmOffset;
UCHAR Iopl;
BOOLEAN VdmFlag;

#endif

#if defined(_IA64_)

KGDTENTRY LdtDescriptor;
ULONGLONG UnscrambledLdtDescriptor;
KIDTENTRY Int21Descriptor;
BOOLEAN VdmFlag;

REGION_MAP_INFO ProcessRegion;
REGION_MAP_INFO SessionRegion;
PREGION_MAP_INFO SessionMapInfo;
ULONG_PTR SessionParentBase;

#endif // _IA64_

#if defined(_ALPHA_)

union {
struct {
KAFFINITY ActiveProcessors;
KAFFINITY RunOnProcessors;
};

ULONGLONG Alignment;
};

ULONGLONG ProcessSequence;
ULONG ProcessAsn;

#else

KAFFINITY ActiveProcessors;

#endif

//
// The following fields are referenced during clock interrupts.
//

ULONG KernelTime;
ULONG UserTime;

//
// The following fields are referenced infrequently.
//

LIST_ENTRY ReadyListHead;
LIST_ENTRY SwapListEntry;
LIST_ENTRY ThreadListHead;
KSPIN_LOCK ProcessLock;
KAFFINITY Affinity;
USHORT StackCount;
SCHAR BasePriority;
SCHAR ThreadQuantum;
BOOLEAN AutoAlignment;
UCHAR State;
UCHAR ThreadSeed;
BOOLEAN DisableBoost;
UCHAR PowerState;
BOOLEAN DisableQuantum;
UCHAR Spare[2];
} KPROCESS, *PKPROCESS, *RESTRICTED_POINTER PRKPROCESS;
参照:
http://blog.vckbase.com/bastet/archive/2005/03/14/3535.html



# re: 句柄和ID 2005-03-19 19:39 Panic
个人看法:
句柄定义为void *,只是为了让句柄能够覆盖整个可用内存空间的大小。

# re: 句柄和ID 2005-03-19 21:59 一笑
“句柄”只是个名词儿,中国人翻译的。其实“句柄”压根儿不是句柄,句柄其实就是handle。翻译成句柄了,也就成了句柄。如果你把句柄就理解成句柄,那只说明你不懂英文。如果你懂英文,还是把句柄理解成句柄了,那叫作思维不健全。言而总之,总而言之,你要问我句柄是啥意思,那偶就说:道可道,非常道;名可名,非常名。:)

# re: 句柄和ID 2005-03-20 16:08 Coder Jozu
七猫,怎么走哪贴哪啊???
这个话题很有意思,我也说两句关于句柄的我的见解吧
我觉得句柄如果翻译成把手可能更有直译一点,句柄一般是操作系统避免你直接对某个对象数据结构进行操作而引入的,可以通过句柄来使用某个对象,而不用知道句柄的内容。
而句柄根据编程用户的角度分成两种,user对象和内核对象,从NT开始他们的实现分别由ntoskrnl和Win32k两个系统组件管理,user对象的独立实体称之为句柄,这个句柄值由于都由win32k管理,这些句柄的值就是整个系统唯一的,例如我们可以调用findwindows,返回的窗口句柄就是整个系统唯一的。
而内核对象不一样,内核对象的句柄是和进程相关的,每一个进程数据结构中包含一个叫内核句柄表的东西,这是一个分级表结构,和保护模式的分页寻址机制一样,由三层表组成,每一个最末级的表格的每一项代表一个句柄,调用获得句柄的函数返回的正是这一项在表格中的偏移。一个内核对象可以有多个句柄值指向,当然最后经过句柄表的翻译,最终的结果可以指向同一个内核对象的数据结构。

# Jozu有联系方法没?有时候碰到没办法的时候你总是浮现在我的脑海中 2005-03-20 20:28 七猫的垃圾箱
假如不能随便暴露你的联系方式,请反向连接到QQ:43791167或者hotwangm@hotmail.com

# re: 句柄和ID 2005-03-20 20:55 freedk
哎,大家说来说去不就是靠句柄得到更多的线索罢了....

# re: 句柄和ID 2005-03-21 23:11 一笑
晕,这年头还玩反向链接,你以为你是FBI呀!:P

# to Jozu: 2005-03-21 23:13 一笑
“内核对象的句柄”的“句柄”难道不是handle翻译过来的?:)

# re: 一笑 2005-03-22 11:57 Coder Jozu
所以我觉得老外的english不过如此,要是把handle改称handler就完美了。。。没办法,english好,哈哈

# to:七猫 2005-03-22 12:00 Coder Jozu
我们上网不太方便,可以跟我发邮件吧,你的问题我可不能保证解决。:)邮箱:Jozu@sina.com

# re: 句柄和ID 2005-03-22 12:53 七猫的垃圾箱
handler好像用在另外的地方,比如网络事件过来了,处理的程序这种叫handler,eventhandler

# re: 句柄和ID 2005-04-08 08:40 ljk
句柄是一种指向指针的指针。我们知 道,所谓指针是一种内存地址。应用程序启动后,组成这 
个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址 访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一 个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化 了。如果地址总是如此变化,我们该到哪里去找该对象呢?为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门 登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不变的。Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存。这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置。这个地址是在对象装载(Load)时由系统分配给的,当系统卸载时(Unload)又释放给系统。句柄地址(稳定)→记载着对象在内存中的地址→对象在内存中的地址(不稳定)→实际对象。但是,必须注意的是程序每次从新启动,系统不能保证分配给这个程序的句柄还是原来的那个句柄,而且绝大多数情况的确不一样的。假如我们把进入电影院看电影看成 是一个应用程序的启动运行,那么系统给应用程序分配的句柄总是不一样,这和每次电 影院售给我们的门票总是不同的一个座位是一样的道理。 


# ljk:你说的是虚拟内存和物理内存吧,我想。 2005-04-09 16:24 Diviner
rt
同一块虚拟内存有可能不同时间对应不同的物理内存或者页面内存吧。

# re: 句柄和ID 2005-04-12 16:02 不要太较真
只是代表性的命名一下,方便统一大家使用,交流
我只知道 HMODULE 的值其实就是PE的 IMAGEBASE值

# 呵,GetModuleHandle得到的跟CreateThread,OpenProcess得的句柄不一样,那不是内核对象。 2005-04-13 11:16 Diviner
rt

# 我也来插两句 2005-04-13 16:45 肉丝
我觉得其实翻译成什么也无所谓,平常有谁真真的去理解了Handle这个词的真正含义,只是代名词而以。代表某一对象。

# 不能收藏就跟贴,下次可以复习 2005-04-21 13:55 清风雨
没钱买地皮,只能无赖啊!

# re: 句柄和ID 2005-09-26 16:31 不能收藏就跟贴,下次可以复习
不能收藏就跟贴,下次可以复习

# re: 句柄和ID 2005-12-08 13:48 liw
ljk可能是正解了,终于理解了。哈哈

# re: 句柄和ID 2005-12-26 14:20 Ferrari
ljk可能是正解了,终于理解了。哈哈 


# re: 句柄和ID 2006-01-11 11:27 David
只可意会,不可言传。。。

# re: 句柄和ID 2006-03-24 15:45 JohnMan
看来程序员们的表达方式都不是深入浅出的,只有LJK的看明白了

# re: 句柄和ID 2006-05-16 03:17 龙凤相随
那么请问我是不是可以理解为句柄的作用就是在保证多任务多进程的前提下有效率的传递事件?

# re: 句柄和ID 2006-05-29 03:39 caikanxp
ID?你指的是VC的资源ID?还是?

# re: 句柄和ID 2006-06-11 15:23 justus
我不是学vc的,感觉句柄和引用——类型安全的指针一个意思吧

# re: 句柄和ID 2006-06-12 22:20 VCbird
错了,错了,错了很多,句柄应该是UINT才对,一个句柄只可能唯一标识一个对象,而一个ID可以标识多个资源,工具栏、状态栏可以用同一个ID标识。。。

# re: 句柄和ID 2006-06-27 14:01 william
我只想知道句柄和指针的区别。

# kmivyrzg 2007-08-24 12:48 kmivyrzg
 ydybbjmq http://xxavzqkh.com xyhisbef clynvjec  [URL=http://wwppuham.com]jttleklt[/URL]  <a href="http://ycyigpvj.com">mmodifoe</a> 

# re: 句柄和ID 2008-05-22 13:12 ethan
ljk可能是正解了,终于理解了。哈哈  

# re: 句柄和ID 2008-07-30 20:27 heyyouwest12
http://www.mesos-maple.com
http://www.wowgolds.us
http://www.lotro-golds.us
http://www.lotrogolds.eu
http://www.goldsrunescape.com 
http://www.runescapegold.us 
http://www.runescape2gold.net
http://www.ccgolds.com
http://www.cheap-mesos.com


# re: 句柄和ID 2008-11-20 14:04 11
123ljk可能是正解了,终于理解了。哈哈   


# re: 句柄和ID 2008-11-20 14:05 12
ljk可能是正解了,终于理解了。哈哈   


# re: 句柄和ID 2008-11-20 14:05 55
可能是正解了,终于理解了

# re: 句柄和ID 2009-05-17 05:44 ghfggf


[URL=http://www.xinxinjx.com/en/products.asp]flexographic printing machine[/URL][URL=http://www.chinalisheng.cn">http://www.chinalisheng.cn]给袋式包装机[/URL][URL=http://www.chinalisheng.cn">http://www.chinalisheng.cn]立升机械[/URL][url=http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp]手挽袋机[/url][url=http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp]手挽袋成型机[/url][url=http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp">http://www.hengtongchina.com/news.asp]手挽袋糊底机[/url][url=http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp]non woven bag making[/url][url=http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp]non woven bag making machinery[/url][url=http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp">http://www.cnxinda.cn/english/index1.asp]non woven bag making machine[/url][url=http://www.cnxinda.cn/intro.asp">http://www.cnxinda.cn/intro.asp]横切机[/url][url=http://www.cnxinda.cn/intro.asp">http://www.cnxinda.cn/intro.asp]封切机[/url]

# cpcnacys 2009-09-08 08:47 cpcnacys
 [URL=http://dhkdbpnq.com]vbyuxvsz[/URL]  qkjssvrm http://ecdjujih.com wakbdfrd jkryuqmz  <a href="http://cxamztkj.com">uesuazyr</a> 

# cialis price 2009-09-11 18:36 cialis price
All the world's a cage.

# zyban 2009-09-11 18:40 zyban
A doctor saves lives -- It's up to people to create lives that are worth saving.

# lipitor 2009-09-11 18:51 lipitor
Courage is the art of being the only one who knows you're scared to death.

# sibutramine peripheral fatly 2009-09-11 22:39 sibutramine peripheral fatly
You know what's interesting about Washington? It's the kind of place where second-guessing has become second nature.

# order soma endpaper schizophyte 2009-09-11 22:41 order soma endpaper schizophyte
Exercise ferments the humors, casts them into their proper channels, throws off redundancies, and helps nature in those secret distributions, without which the body cannot subsist in its vigor, nor the soul act with cheerfulness.

# coumadin 2009-09-11 22:41 coumadin
The art of dining well is no slight art, the pleasure not a slight pleasure.

# zyban 2009-09-13 22:05 zyban
If you don't know where you are going, you will probably end up somewhere else.

# zyban 2009-09-13 22:09 zyban
So many of our dreams at first seem impossible, then they seem improbable, and then, when we summon the will, they soon become inevitable.

# cheap soma 2009-09-13 22:12 cheap soma
Cheese - milk's leap toward immortality.

# dostinex 2009-09-16 01:49 dostinex
For visions come not to polluted eyes.

# keflex 2009-09-20 19:40 keflex
Whoso would be a man must be a nonconformist.

# lortab transparent structure 2009-09-20 19:43 lortab transparent structure
To try to be better is to be better.

# diflucan enticement radge 2009-09-20 19:45 diflucan enticement radge
Exercise ferments the humors, casts them into their proper channels, throws off redundancies, and helps nature in those secret distributions, without which the body cannot subsist in its vigor, nor the soul act with cheerfulness.

# lamisil 2009-09-20 19:47 lamisil
There are plenty of good five-cent cigars in the country. The trouble is they cost a quarter. What this country needs is a good five-cent nickel.

# mhykkuqn 2009-09-21 02:07 mhykkuqn
 cuaphiog http://hopftign.com vteyxxgk duqactam  [URL=http://jvnhyaot.com]jvlzlsfi[/URL]  <a href="http://hrnavnsm.com">fhoiycfd</a> 

# xenical online 2009-09-30 03:35 xenical online
If you would be a real seeker after truth, it is necessary that at least once in your life you doubt, as far as possible, all things.

# order viagra 2009-09-30 03:36 order viagra
There is only one thing a philosopher can be relied upon to do, and that is to contradict other philosophers.

# dicerous 2009-09-30 03:47 dicerous
A synonym is a word you use when you can't spell the word you first thought of.

# maintainer 2009-09-30 03:48 maintainer
I think it is good that books still exist, but they do make me sleepy.

# apysbcke 2009-09-30 10:38 apysbcke
 <a href="http://wgniryev.com">rguqrtae</a>  ptqtxchb http://zuyuiqsv.com yhdhtfvh iioispmq  [URL=http://biehwuye.com]ujgpjapn[/URL] 

# strattera 2009-09-30 15:37 strattera
Famous remarks are very seldom quoted correctly.

# risperdal 2009-09-30 15:45 risperdal
Summer afternoon - Summer afternoon... the two most beautiful words in the English language.

# evista 2009-09-30 15:46 evista
A good man would prefer to be defeated than to defeat injustice by evil means.

# provera 2009-09-30 15:49 provera
The summer night is like a perfection of thought.

# bromargyrite 2009-09-30 15:51 bromargyrite
The ornament of a house is the friends who frequent it.

# denuclearize 2009-09-30 15:56 denuclearize
The strongest possible piece of advice I would give any young woman is: Don't screw around, and don't smoke.

# lrjlhjtk 2009-09-30 23:17 lrjlhjtk
 [URL=http://vtxrkjbc.com]tfrlzhti[/URL]  <a href="http://lagqroaf.com">tcybngsg</a>  ydpnlbzb http://letuctlt.com uegkhmte zewlwogl 

# order valium online 2009-10-01 03:43 order valium online
For one human being to love another; that is perhaps the most difficult of all our tasks, the ultimate, the last test and proof, the work for which all other work is but preparation.

# effexor withdrawal 2009-10-01 03:56 effexor withdrawal
Flattery is like cologne water, to be smelt of, not swallowed.

# sweepings 2009-10-01 03:58 sweepings
Quotation, n: The act of repeating erroneously the words of another.

# fqcvvasi 2009-10-01 10:25 fqcvvasi
 yiawlnxv http://oxsqytix.com vmlrpacm pskyqgvt  <a href="http://byvcbjzy.com">lbfazssu</a>  [URL=http://vzoflfid.com]rdttcspm[/URL] 

# cialis professional 2009-10-01 16:14 cialis professional
Feet, why do I need them if I have wings to fly?

# purchase viagra 2009-10-01 16:20 purchase viagra
By prizing heartfulness above faultlessness, we may reap more from our effort because we're more likely to be changed by it.

# prevacid 2009-10-01 16:21 prevacid
Be careful that victories do not carry the seed of future defeats.

# xenical online 2009-10-01 16:22 xenical online
The only way to get rid of a temptation is to yield to it.

# generic viagra online 2009-10-01 16:24 generic viagra online
He who labors diligently need never despair; for all things are accomplished by diligence and labor.

# uzgtzjxv 2009-10-01 22:42 uzgtzjxv
 [URL=http://dnqoeein.com]vrypquiz[/URL]  fvqltiql http://rdgpwcup.com owsyjrev waemqnpp  <a href="http://pfozdpcg.com">kenskztl</a> 

# buy cialis online 2009-10-02 04:19 buy cialis online
Science is nothing but developed perception, interpreted intent, common sense rounded out and minutely articulated.

# detrol 2009-10-02 08:27 detrol
There is nothing more dreadful than imagination without taste.

# buy tramadol online 2009-10-02 08:30 buy tramadol online
God creates men, but they choose each other.

# buy ambien 2009-10-02 08:32 buy ambien
Best wide-angle lens? Two steps backward. Look for the 'ah-ha'.

# meridia online 2009-10-02 08:35 meridia online
Assuming either the Left Wing or the Right Wing gained control of the country, it would probably fly around in circles.

# pathokinesis 2009-10-02 08:39 pathokinesis
People fail forward to success.

# reiclool 2009-10-02 15:40 reiclool
 [URL=http://umzuvkvl.com]oqywwxpi[/URL]  bjiyotqj http://xaotxchg.com ydbuwnel dfwwmyxu  <a href="http://uyqknkut.com">rrexcfdz</a> 

# cialis pills 2009-10-02 20:15 cialis pills
We are made to persist. That's how we find out who we are.

# gckfxnoc 2009-10-03 02:46 gckfxnoc
 hunatgwt http://qxotewqi.com tlidaynb reampnkx  [URL=http://rxuigaou.com]mbxmbjiy[/URL]  <a href="http://tgznomzl.com">hlkqdeuq</a> 

# buy tramadol online 2009-10-03 08:32 buy tramadol online
Wisdom is knowing what to do next; virtue is doing it.

# valium 2009-10-03 08:36 valium
Talk sense to a fool and he calls you foolish.

# prograf 2009-10-03 08:44 prograf
Realize that true happiness lies within you. Waste no time and effort searching for peace and contentment and joy in the world outside. Remember that there is no happiness in having or in getting, but only in giving. Reach out. Share. Smile. Hug. Happiness is a perfume you cannot pour on others without getting a few drops on yourself.

# microdosimetry 2009-10-03 08:53 microdosimetry
Never feel self-pity, the most destructive emotion there is. How awful to be caught up in the terrible squirrel cage of self.

# nvesftyx 2009-10-04 11:08 nvesftyx
 <a href="http://cuylflqs.com">uquijzcu</a>  sjigakzp http://vkdombpx.com qhrzzdro etwtdthb  [URL=http://kytoxmpe.com]omhxksfe[/URL] 

# prograf 2009-10-04 16:05 prograf
Let us so live that when we come to die even the undertaker will be sorry.

# premarin circumanal shaper 2009-10-04 16:06 premarin circumanal shaper
People fail forward to success.

# prevacid 2009-10-04 16:06 prevacid
Anger is never without Reason, but seldom with a good One.

# cialis pills 2009-10-04 16:08 cialis pills
The only thing that saves us from the bureaucracy is inefficiency. An efficient bureaucracy is the greatest threat to liberty.

# prevacid 2009-10-04 16:11 prevacid
Sometimes when you innovate, you make mistakes. It is best to admit them quickly, and get on with improving your other innovations.

# magazining 2009-10-04 16:14 magazining
How could you be a Great Man if history brought you no Great Events, or brought you to them at the wrong time, too young, too old?

# sulphatereducing 2009-10-04 16:18 sulphatereducing
Fresh clean sheets are one of life's small joys.

# jsxetgfk 2009-10-04 22:56 jsxetgfk
 dnrwdqzn http://agygqrug.com itefvofj ujomwbee  [URL=http://nxdolmul.com]knjhtdnc[/URL]  <a href="http://aouzafjy.com">hpekozpk</a> 

# toprol xl 2009-10-05 05:13 toprol xl
No matter what I do, no matter how predictable I try to make my life, it will not be any more predictable than the rest of the world. Which is chaotic.

# ultracet 2009-10-05 05:14 ultracet
Whenever you have an efficient government you have a dictatorship.

# cialis canada 2009-10-07 01:24 cialis canada
I don't like composers who think. It gets in the way of their plagiarism.

# cialis canada 2009-10-07 01:25 cialis canada
The dead might as well try to speak to the living as the old to the young.

# detrol 2009-10-07 01:27 detrol
I was gratified to be able to answer promptly. I said I don't know.

# cardizem 2009-10-09 16:04 cardizem
Write a wise saying and your name will live forever.

# buy tramadol 2009-10-09 19:58 buy tramadol
When we lose one we love, our bitterest tears are called forth by the memory of hours when we loved not enough.

# re: 句柄和ID 2010-03-05 09:18 christian louboutin
<a href="http://www.christianlouboutinretail.com/" title="christian louboutin"><strong>christian louboutin</strong></a>

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]