??xml version="1.0" encoding="utf-8" standalone="yes"?>久久人人爽爽爽人久久久,久久精品黄AA片一区二区三区,日韩久久久久中文字幕人妻http://m.shnenglu.com/cw290746987/archive/2011/09/11/155568.html陈晓陈晓Sun, 11 Sep 2011 11:04:00 GMThttp://m.shnenglu.com/cw290746987/archive/2011/09/11/155568.htmlhttp://m.shnenglu.com/cw290746987/comments/155568.htmlhttp://m.shnenglu.com/cw290746987/archive/2011/09/11/155568.html#Feedback0http://m.shnenglu.com/cw290746987/comments/commentRss/155568.htmlhttp://m.shnenglu.com/cw290746987/services/trackbacks/155568.html
从搬q这家民房的W一天,我就开始怀疑我隔壁的那个储藏室Ҏ(gu)没住人。一天到晚黑黢黢的,没半点声响?nbsp;
我终于还是忍受不?jin)房间里那个破沙发?jin)Q便又一ơ跟房东要求Q能不能让我把一些杂物放q隔壁的储藏室。房东斜着|g(jin)一下:(x)跟你说过多少ơ了(jin)Q那储藏室租l一Ҏ(gu)工夫妇了(jin)Q里面住着人呢Q?nbsp;
我算见识?jin)广东h的抠门,打再也不ȝq一dC(jin)?nbsp;
那天Q我出来倒垃圾,l过储藏室的门,听到里面H窸嗦嗦的,气就不打一处来Q我知道肯定是老鼠又在里面?*?jin)。我狠狠C脚踹在门上,q不解气Q就又猛t一脚?nbsp;
门吱嘎的开?jin),我吓了(jin)一跟뀂我以ؓ(f)我把门踹坏了(jin)Q正忐忑不安的时候,一个女人的脑袋怺(jin)出来Q确切的说应该是个女孩或者少妇,从她那蓬杄马尾辫和q有些稚气的怸我实在无法判断她的年龄?nbsp;
她轻ȝ问道Q?zhn)找谁Q?nbsp;
我愣?jin),呆在那里Q不知道说什么好?nbsp;
q时候一个有些猥琐的男孩子也把脑袋凑着怺(jin)出来Q迟疑了(jin)一下说Q你是隔壁的吧?Q?nbsp;
我一下子醒?zhn)q来Q说Q是啊,是啊?nbsp;
男孩子笑d的得意的_(d)(x)我上ơ下班回来见q你?nbsp;
周围的空气戛然的停在那里Q有些尴。我赶忙说着Q不好意思,不好意思,打扰你们?jin)。便q速的溜回自己的房门。我听到?jin)他们轻d戉K的声韻Iq听C(jin)他们H窃U语的声韻I好像在说Q是不是我们qx动静(rn)太大Q吵到邻居了(jin)Q那以后我们要多注意?jin)!之类的话?nbsp;
我喝?jin)口_(d)q静(rn)下来Q我才确信,那个一天到晚黑z洞的储藏室里真的住着俩hQ这俩h也许是房东说的那对民工夫妇?nbsp;
我突然冷W了(jin)一下,q夫妇呢Q一看也?0来岁的样子,U奔出来的?q是新婚夫妻?不自觉的W了(jin)W,自我解嘲的想Q民工么Q?农村出来的,l婚普遍早。那看来以后得称|那男人,那女Z(jin)。这h着Q还抑制不住的笑Z(jin)声?nbsp;
W一ơ跟q对夫L触是因ؓ(f)我忘C(jin)带钥匙,q不?jin)门Q便找他们借工Px门撬开?nbsp;
那是我第一ơ真正的L那个门,也是W一ơ去光顾那个阴暗的储藏室?nbsp;
门开?jin),他们夫妻看到我似乎很惊喜Q赶忙的让我q屋。我说明来意Q他们夫d转n扑֮伙去?jin)。门开着Q里面黑乎乎的,我忍不住往里迈?jin)一步。不知道脚被什么绊?jin)一下,我以为是有老鼠Q吓?#8220;哎哟”大叫。他们中的一个,立马打开?jin)灯。天花板上的那盏灯散发着昏黄的光Q我敢肯定那灯(chng)不会(x)过10瓦。我很怀疑他们能从哪里买到这L(fng)灯(chng)Q在q样一个南方大都市(jng)我实在想象不出来哪里?x)有卖这L(fng)灯(chng)的。我猜想也许那是他们从老家带来的也说不定?nbsp;
我打量着q个我曾l很x杂物放进来的储藏室。我以最奢侈的估,戉K不会(x)过10个^斏V四周没有Q何一个窗P门是唯一可以通风和出入的地方。房间里散发着一U潮湿的霉味Q钻q嗓子眼Q让人感觉恶?j)。我忍不住一个箭步退?jin)出来?nbsp;
可是我却清楚的看刎ͼ戉K里除?jin)一张单人木板床和零落在C的锅瓢盘,真的没有M插脚的地方,我真佩服那对夫L怎么呆在里面生活的?nbsp;
最后,夫妻俩找C们做饭的刀Q也是唯一一个有可能打开我房门的工具Q费?jin)?ji)牛二虎之力帮我弄开?jin)门?nbsp;
门开?jin),我ƈ没有M要他们进来的意思。他们站在门口,把着门框。踮着脚尖Q一副腼腆的样子Q打量着我这个两室一厅的房子。女人终于说?jin)一句话Q怎么从来没看见过(zhn)先生啊Q我怔着脸说Q我q没l婚。女的脸U了(jin)Q似乎说错了(jin)话,低着_(d)不敢搭腔。男Z好意思地_(d)那?zhn)一个h住这么大的房子啊。我没回{?nbsp;
两个人,半响没说话。不知道是谁先看C(jin)我放在客厅的?sh)脑Q便忍不住说Q?zhn)有?sh)脑呢Q?nbsp;
我心(j)里一个咯噔,民工也懂?sh)脑Q我_(d)(x)是啊Q你?x)上|么Q?nbsp;
L(fng)挠了(jin)挠头皮说Q我们读大学的时候,有电(sh)脑课Q上q机?nbsp;
我嗖的浑w一阵发凉,大学Q他们是大学生?可是怎么看怎么不像阿! 
我心(j)里多有点被ƺ骗的感觉,故意问Q那你们现在做什么工作的Q你们什么学校毕业的Q读的什么专业啊Q?nbsp;
他们抿了(jin)抿嘴Q有点不好意思,我以下可揭穿你们?jin),真虚伪?nbsp;
H然L(fng)开口了(jin)Q我们读的学校不好,也就是个三流大学Q我跟我老婆是一个大学的又是同乡Q她LU,我读理科。现在我做业务员Q她在餐馆当服务员?nbsp;
我撇?jin)撇_(d)“?#8221;?jin)一声?nbsp;
“我是**大学研究生毕?#8221;在我说完q句话的时候,我才发现Q门口的两个Z知道什么时候已l走?jin)?nbsp;
我有点失落,猜测着他们有没有听到我提到**大学q个重点大学的名?nbsp;
众所周知Q这几年扩招Q大学生可谓是遍地爬。大学容易读?jin),可是׃却难多?jin)。三大学的毕业生,真的是连民工都不如,要体力没体力Q要脑力又够不上根{而且三流大学学费q不见得低,甚至要比好的大学要高很多Q我q道很多三大学学贚w的惊人?nbsp;
看这对小夫妻Q估计是农村出来的,当初他们也许q不知道Q花光家里的U蓄Q得到的q一U文凭,原来在这个社?x)里也许什么都不是。背负着一w债务Q出来打工才知道Q原来三大学的大学生只能跟学没毕业的靠体力吃饭的民工是一个层ơ的Q都是命比纸薄,人比命贱的?nbsp;
W二天,虽然我内?j)深处还在揣着Q他们拿刀l我撬门技术这么好?x)不会(x)哪天趁我不在也会(x)这L(fng)l的手Q可是总还是觉得别人帮?jin)忙q意不去Q就C(jin)几斤南方的水果给他们拎了(jin)q去?nbsp;
他们g受宠若惊Q说什么也不要。我告诉他们这是广州这边的规矩Q找人帮?jin)忙Q一定要表示的,不收是不给我面子。他们才诚惶诚恐的收下了(jin)?nbsp;
没过一?x),他们又来敲我的门。我以ؓ(f)是他们是把水果又送回来的Q结果开门后的第一句话pQ请问,q水果最多能攑֤久?我诧异的望着他们Q心(j)里有Ҏ(gu)Q心(j)惻I(x)N他们以ؓ(f)我给他们买的水果q期?jin)?我正要发作,他们便补充一句:(x)能放到过q回家么Q我愣了(jin)Q他们说Q过q没啥带回去的,q水果一定不便宜吧?我们惌q回ȝ时候带回去当年货。我有点哭笑不得_(d)(x)q州天热Q不能放那么久的Q个把星期就得坏?jin)?nbsp;
他们有点无奈Q说?jin)句谢谢Q就C(jin)?nbsp;
可是我明明听刎ͼ(x)L(fng)对女的说Q要不我们想办法留到8?5Q过节的时候打打馋吧?nbsp;
一个月后,农历??5Q单位每人发?jin)一盒高U月|拿回来后Q我拆开了(jin)一个,感觉很难吃,想丢掉?nbsp;
l过那个储藏室的门,我改变了(jin)LQ想着丢了(jin)也怪可惜的Q他们那么可怜,倒不如给他们q节的好?nbsp;
看着门虚掩着Q我没敲Q就径直推开?jin),那盏昏黄的灯亮着Q两个hy在CQ男的正在小?j)翼的切一个小的月饼Q正准备把一块稍大点的给老婆吃,看到我站在门口,不知所措的说不?gu)来。女的正低头啃着明显已经有点坏了(jin)的水果,吃的z|有味Q我看到Ҏ(gu)有削皮,番石榴和火龙果都是带着皮吃的?nbsp;
男h呆了(jin)五秒Q赶紧要把那块稍微大点的月饼让给我吃Q我说我不吃月饼的,然后说明?jin)来意。把那盒月饼攑֜门口准备离厅R女人叫住了(jin)我:(x)大姐Q我都不知道说什么好?jin),你看Q我们吃的水果也是?zhn)l的Q?zhn)又给我们送月饼来Q我都不知道该怎么报答(zhn)了(jin)Q本来今天老公公司l他发了(jin)一个月|我们商量着l?zhn)送去的,可是一个拿不出手,没好意思,我们也没什么稀|物Q你有啥事要帮忙的,一定吱应一声啊Q?nbsp;
我这才知道,那一个月饼是她老公发的Q我也这才知道,她啃的水果是一个月前我送给他们的。我本来惌Q吃火龙果要扒皮。可是我忍了(jin)忍,没有说出来?nbsp;
周末Q隔壁的女h来敲门,问我有什么事是他们帮得上忙的Q我W着说没有。她眼尖Q看到我沙发上放着一大堆脏衣服,非要帮我z,我说有洗衣机Q一?x)丢q去是?jin),不费事的。她尬的站在那里,像是很对不v的样子,不知道该做什么好?nbsp;
我第一ơ,很热情的邀(g)请她q门Q坐一?x)。她׃(jin)鞋,光着脚丫子,q了(jin)门。战战兢兢的Q似乎怕弄脏了(jin)我的地板Q不敢劲踩下去。她哪里知道其实我已l一个多星期没有擦过地板?jin)?nbsp;
她告诉我Q今天她休班Q本来想帮我做点事的Q可是没惛_没做成。她g很羞愧,一直细声细气的{着我的话。她在我q里呆了(jin)半个时Q告诉了(jin)我他们的境遇Q说那些话的时候她一直很温柔Q像在说一个故事,丝毫没让我感觉到她的埋怨和委屈?nbsp;
我给她倒的那杯矿泉_(d)她一直攥在手里,临走的时候,Ҏ(gu)?jin)望我,我点头示意,她带C(jin)那个一ơ性的U杯子和那杯矿泉水。我猜,Ҏ(gu)想留l她的老公喝?nbsp;
从今天我才知道,他们是这L(fng)Q?nbsp;
两个农村出来的孩子,父母都是守着一亩三分地的地道农民,每年家庭收入从来不会(x)过2000的困家庭,又都考上?jin)同一所三流大学Q学Ҏ(gu)q的需要是父母不吃不喝? q的家庭收入。读不v书,不想去,父母不肯Q说q是唯一一ơ改变农村孩子命q的Z(x)Q跪下来求你去读。来M(jin)Q没׃学费Q好Ҏ(gu)个助学贷ƾ,好不Ҏ(gu)凭着优异的成l申请到?jin),可是毕业的时候却因ؓ(f)没有q清h不发毕业证。四q的生活Ҏ(gu)靠着奖学金艰隄撑下来的。到头来Q辛苦的付出却换不到那一U毕业证。于是两人只能出来打工赚钱,攒够?jin)钱好回去赎回毕业证?nbsp;
他们U着q个城市(jng)最廉h(hun)的房子,吃着q个城市(jng)最廉h(hun)的饭菜,q着q个城市(jng)最贫困的生z,可是一q到头下来却q攒不到1万块钱。这样下去,要还完两人的hq要8q?nbsp;
我不知道8q对一个h的青春意味着什么,也不知道8q后是不是还能有Z(x)有权利买回他们的毕业证。可是我知道8q的q样的生z,不是随便哪一个h能撑得住的! 
那天Q我回来的时候,有点晚,楼道里的灯已l都开始亮着?jin),l过隔壁门口的时候,看到他们门开着Q屋里照栯是黑黢黢的,L(fng)y在门口大口大口的扒着面条Q吃的很香。我问了(jin)一句:(x)灯坏?jin)?他先是迟疑?jin)一下,然后憨憨的笑?jin)?x)没呢Q省?sh),反正楼道里的灯亮着Q开着门,屋里也挺亮堂的。我W了(jin)。我q才知道Q怪不得他们屋里天天都不开灯?nbsp;
那晚他们的门一直敞开着到很晚。我在客厅里能隐隐约U的听到他们的谈话?nbsp;
他们先是谈了(jin)?x),q个月又多花?jin)多钱Q什么肥皂用的太快了(jin)Q水太浪费了(jin)Q上ơ过生日不该买那2斤肉的,以后z菜的水可以z脸Q洗脸的水可以洗澡洗脚,z脚的水可以z袜子,z袜子的水可以冲厕所{等之类的话?nbsp;
他们一边自责着自己花钱太多Q一边却又忍不住憧憬着好的未来?nbsp;
他们惌着Q不久的来Q也许还完了(jin)钱,可以要个孩子,也许来q能攒前买房子呢?nbsp;
听着他们兴奋的呢喃声Q我久久没有睡意?nbsp;
半夜Q我听到L(fng)喊肚子疼Q好象疼的很厉害的样子,“哎呀哎呀”的叫着。女?很着急,问怎么?jin)?L(fng)说好象今晚吃多了(jin)Q撑着?jin)。女的就招呼他赶紧v来上厕所?nbsp;
L(fng)q疑?jin)很久,g不想去,半响Q我听到L(fng)说话?jin)?x)我不惛_上厕所Q我们攒的冲厕所的水q不够,那样q个月的水又要超支了(jin)。再说了(jin)Q上完厕所Q拉IZ(jin)肚子Q晚上容易饿Q?nbsp;
听到q里Q我脑袋轰的一下,I白?jin)?我的?j)被揪的生疼生疼Q那句话成了(jin)我整夜的梦魇Q拉IZ(jin)肚子Q我怕饿Q?nbsp;
听到那句话,我的?j)震g(jin)。我惛_?jin)我的爷爗?nbsp;
L(fng)生活在苦命的旧社?x),在那个吃不饱Q穿不暖的社?x)里Q一q到_(d)孩子拼命的盼着q年Q因q能吃顿饱饭Q?nbsp;
所以,每个孩子在过q那天,吃的撑的肚子圆溜溜的,肚子再怎么涨,都不舍得d所。因为,M(jin)厕所Q拉IZ(jin)肚子Q会(x)Ҏ(gu)感觉到饿Q可是过完了(jin)q_(d)是没有机?x)再能吃K饭的Q所以每个孩子都憋着Q忍着Q因为那个年代,IPZ怕饿Q?孩子更怕饿Q?nbsp;
可是?1世纪Q在q么发达的年代,你竟然能从一个大学毕业生的嘴巴里听到q样的话Q你?x)有怎样的感觉?感动Q?zhn)恸?q是?j)酸Q还是无可奈何的哀叹? 
或许都是Q或?dng)R不是Q?nbsp;
我无暇顾?qing)一个弱者的?j)态,因ؓ(f)C会(x)如此Q我也无能ؓ(f)力。我唯一能表C的除了(jin)同情或许q是只有同情?nbsp;
我也曄鄙视q,甚至曄在心(j)底侮pQ?z该Q谁让你没本事考个名牌大学呢!没钱M屁书Q自作自受! 
可是我也不得不承认,一个山里的孩子Q是不能仅仅凭着聪明才智p高攀的v名牌大学的门槛的Q那需要能力,实力。实力有时候除?jin)良好的教育Q优U的老师Q还有很多很多,比如金钱堆砌的补?fn)班Q比如只有城里孩子才能n受的到的全方位的教育Q又比如有有权有势的父母?nbsp;
他们没有Q他们是农村的孩子,他们没资格和权利有,没hl他们买各种辅导资料Q也没有全国的优U教师l他们手把手的教Q他们没见过钢琴Q没见过?sh)脑Q他们甚至除?jin)村支书Q不认识M一个可以称得上q部的领对{?nbsp;
他们一天到晚只?x)看发的那唯一的课本,只会(x)拼命的学Q只知道只有考上大学才能改变自己的命q?nbsp;
听着他们y脚的英语,不太利的普通话Q有些邋遢的装扮Q破旧过时的衣着Q我们都?x)忍不住W?nbsp;
我们喜欢在背后对他们评头Q喜Ƣ抿着嘴吧装作淑女般的嘲笑他们的无知,甚至喜欢在要d麦当劳的时候故意问他们M厅R习(fn)惯了(jin)看他们的尬Q习(fn)惯了(jin)看他们的无助Q也?fn)惯了(jin)他们失ȝ比得到多?nbsp;
当我们有?jin)太多的q样的习(fn)惯,于是我们便开始不在乎Q他们是不是饿,是不是在我们费_食的时候,他们在心(j)底里q默늝Q不敢去厕所Q怕拉IZ(jin)肚子Q饿Q的事实?nbsp;
“人怎能跟h相比呢?没有可比性!农村的怎么能跟城市(jng)的孩子比呢?没比的必要!”q是以前我的一个朋友经常跟我说的一句话Q那时候听?jin)觉得好W,现在惌v来,觉得有点无可奈何的心(j)酸?nbsp;
人难道真分三六九(ji){么Q谁分的Q你么?Q?nbsp;
q州的治安是来差?jin),住这U私房,真的是冒着生命危险的。可是眼下我又找不到合适的房子搬,只能暂且战斗在最前线?jin)?nbsp;
整栋楼有十几个房东,他们是天天围着d桌懒得轮值班的,反正L(fng)也不是他们家的东ѝ最后在我们几个房客的据理力争下Q好歹请?jin)一个保安?nbsp;
我下班回来,看到g吵吵嚷嚷的,原来是保安抓住了(jin)个嫌疑犯。我好奇的瞥?jin)一|qh不是别hQ就是住在我隔壁的那个看上去有些猥琐的男人。他低着_(d)拼命的解释:(x)自己不是偷Q自己是住在q里的?nbsp;
可是没有人相信他Q因为当保安问他住几|哪个戉KӞ他只说了(jin)6|却说不出戉K受因为储藏室是没门牌L(fng)的! 
他像个吓坏了(jin)的孩子,眼睛惊恐的扫视着周围的每个hQ听着叽里呱啦的客家话Q他无力的解释像一个h最后的d挣扎?nbsp;
我本能的走过去,他看C(jin)我,眼睛里充满了(jin)希望Q含着泪珠的眸子闪q某U感Ȁ。我抬了(jin)抬我那L直视q方的眼睛,发现周围的h都盯着我?nbsp;
我迟疑了(jin)Q立d住了(jin)自己?公分的高跟鞋。我轻轻理了(jin)理自q_色z装Q脸上滑q让Z易察觉的一丝惊慌和x。我x头冲向楼梯,当作什么都没发生过。可是我怎么也抬不动我的双腿Q我僉|在哪里半U钟?nbsp;
我尽量的压低嗓门Q很CD矜持的说Q你怎么没带大门的钥匙?是不是又丢了(jin)Q真让h?ch)?nbsp;
保安攑ּ?jin)他Q我微笑着_(d)(x)他是我的q房亲戚。不好意思,l你添麻?ch)?jin)?nbsp;
我扭_(d)t着我那尖的高跟鞋上楼?jin),楼道里留下一?#8220;嗒嗒”的响声?nbsp;
他老婆回来的时候,一直隔着门,站在我门口不停的说着Q谢谢。我没吱声。过?jin)不久,g她已l走?jin)的时候,我打开门,看到他们却还站在门口Q捧着一大把q和红枣?nbsp;
我盯着他们Q没开门,他们也没敢说q是l我。只是一个劲的解释:(x)下午那会(x)Q他老公是想在楼下捡几个矿泉水瓶子呢Q要早知道不让捡Q他说啥也不M(jin)?nbsp;
我本x断她的讲话,告诉他们Q不是不让捡Q是你们长的不像住在q栋楼里的h。可是我q是忍住?jin),l箋听他们说?nbsp;
他们始终低着_(d)d慢语的,_(d)(x)他们也知道这里的规矩Qh家帮?jin)忙呢,一定要感谢的,可是他们没什么能拿的出手的东西,q是他们老乡回家l他们捎来的安的特产,都是自家U的Q没用过化肥Q?让我攑ֿ(j)吃?/div>
我还是开?jin)门Q拿?jin)张U,让他们把那把C物攑֜?jin)一张洁白的A6U怸?nbsp;
那把q和枣我没有吃Q我放在那里,看着。他们都光溜溜的Q泛着光,很心(j)想的样子Q一般大的个头。很饱满?nbsp;
房东l于找上门了(jin)Q开门见qW一句话是Q是不是你家Cq一个hQ我愣了(jin)好大一?x),才想hQ可能是保安跟他说了(jin)?nbsp;
我把事情的来龙去脉解释了(jin)一下,q试图说服房东给隔壁的门也挂个号Q房东不情愿?#8220;嗯呢”?jin)几壎ͼ便走了(jin)?nbsp;
W二天,我真的看C们的门上贴了(jin)张纸Q写着Q清z工具存攑֤?nbsp;
没过几天Q我大学里的死party兼室友和Ҏ(gu)l识的男友来q州找乐Q我被迫请了(jin)一天假Q陪他们?nbsp;
随便找了(jin)个馆子想请他们吃_菜Q可是朋友说_菜没味Q没吃几下,嚷着赎ͼ后来q是不得不去?jin)湘菜馆子,才算满他们的胃口。吃完饭Q没事,街上是不敢拎着包包闲逛的Q就M(jin)“钱柜”K歌,唱到一半,l果又性子Q非要去“朝歌”。弄来弄去,歌没唱好Q还耽误?jin)时间?nbsp;
晚上回来的时候,已经有些晚了(jin)。可是我看到隔壁的灯q亮着Q屋里还嘤嘤的传来抽泣的声音?nbsp;
我没理会(x)那声韻I开?jin)门Q把朋友让了(jin)q去。朋友进门就开?jin)?sh)脑,把那首《不怕不怕》开的声韌大Q震的整个房子都晃?zhn)?nbsp;
g的终于忍不住?jin)。来敲门Q让我们动静(rn)点。我关了(jin)音乐Q跟朋友谈v?jin)隔壁的那对夫妅R朋友以为我在讲故事Q一边说着无聊Q一边就摸过烟开始吸。我最讨厌烟味Q因为那能呛出眼泪?nbsp;
我赶朋友出门Q让她在楼道里吸够了(jin)再回来?nbsp;
半支烟工夫,朋友d的敲门,兴奋的叫着她男朋友的名字,说快出来听戏?nbsp;
他们俩出去,便没?jin)声息。好久才回来?nbsp;
朋友一q来Q就凑到我x边说Q你别假正经?jin),是不是每天晚上没事,去隔壁听音乐啊Q?我还没来得及(qing)反应q来Q他们俩大Wv来。没完没?jin)的Q怪烦(ch)人的?nbsp;
后来Q我才知道,原来他们俩是去隔壁门口听动静(rn)M(jin)。至于什么动?rn),我没问,但我惻I应该与颜色相兟?nbsp;
晚上睡不着拿v《洛丽塔》,看了(jin)两页Q就开始走。后来迷qL(fng)p的睡着的时候,我似乎真的听C(jin)隔壁的动?rn),声音不大Q但很诱人?nbsp;
朋友呆了(jin)q不?天,我就开始烦(ch)w,我感觉那U以往的宁?rn)被打破了(jin),而且一个单w女人看CҎ(gu)人在你面前晃来晃ȝ亲昵Q真的容易中风! 
送走他们Q我开始变得神l质Q我l常故意关门很大壎ͼ估计开开兛_防盗门不停,故意惌隔壁听到我在发脾气,故意惌每个人都知道我心(j)情很不好?nbsp;
隔壁的小夫妻q是每次看见我笑W的Q有点腼腆的。男人那头有Ҏ(gu)a(b)L点ؕ的头发依旧还是在发梢上泛着或多或少的头皮屑Q女人的马尾辫也依旧蓬松的拢在后面,有点像秋天ؕ飞的?wi)叶?nbsp;
可是我见?jin)他们,却没有笑Q也不再板着脸,只是面无表情的点个头Q用自己有力的鞋跟敲打着地面Q匆匆离厅R?nbsp;
每次低下_(d)看着自己?公分的高跟鞋Q我才恍惚的感觉刎ͼ其实没有?jin)这鞋跟Q我g也不高! 
然后是无休止的p和郁P 我猜Q他们一定是_ֿ(j)挑过?jin)的。估计一麻袋里才能挑?gu)般的q枣子吧?nbsp;
惛_q里Q我W了(jin)。不大会(x)Q我又后(zhn)v来,我真不该W!
有这么几天,那扇门一直关的紧紧的Q屋里也一直没亮过灯,我扒在门~里瞅,竟然不能看到里面的Q何东ѝ有几次Q我甚至使劲贴着x听,竟然也丝毫没听到M动静(rn)。我开始害怕,担心(j)他们不声不响的搬C(jin)?nbsp;
我甚臛_始抱怨,Z么走的时候没打声招呼。我不知所措,在房间里t来t去Q狠命的撕扯着那个抱枕Q用力敲打着键盘Q写着一些很刻的文字,用蔑视的眼光看着周遭的一切?nbsp;
我发现我有好久没q么情AȀ动过?jin),甚至应该说我有很多年没这么情l化?jin)。我H然伤感h。似乎失M(jin)什么珍늚东西Q似乎别人偷C(jin)原本属于我的一份心(j)情。我开始诅咒,开始谩骂,开始憎恨这个世界?nbsp;
我每天站在门口,期望着能突然有人站在我面前W,我L忍不住去瞄那扇门Q希望能看到里面透出一丝E淡的泛着黄晕的光。可是一q好几天Q都没有?nbsp;
我终于还是跑L?jin)那个有点啰嗦的房东。我说我要租那个储藏室。房东讶异的看着我:(x)你要住?我皱?jin)皱眉,_(d)(x)我要放沙发。房东似乎有点ؓ(f)难:(x)你想什么时候租Q我诧异?jin)?x)N现在q有Z么? 不是I出来了(jin)么?房东_(d)(x)那对民工下个月到期?nbsp;
我忽然有U莫名的ƣ喜Q难道还没走Q我l结巴巴的说着Q那下个月我U! 
{我再经q那扇门的时候,我有炚w_(d)因ؓ(f)我似乎看到里面锅瓢盘碰撞的声音Q因Z乎我能听C们的H窃U语?nbsp;
那天Q我睡的很早Q我其实一点也不困。可是我q是早早的h在了(jin)床上Q我睁大?jin)眼睛,看着天花板,想着有一ơ能有h敲我的门?nbsp;
一阵开门的声音惊动?jin)我Q尽那声音的q没蚊子“嗡嗡”声大Q可是近几天我练?yu)׃?jin)一双聪慧的x。我唰的从床上爬hQ冲?jin)出厅R?nbsp;
那女人看着我当L(fng)一声开门声Q吓得站在哪里不动了(jin)。我很尴,赶忙掩饰自己的那U激动:(x)回来?jin)?怎么q几天都不在Q回老家?jin)么Q女人望?jin)我半响Q吞吞吐吐的_(d)(x)q没睡呢Q大姐。没Q没呢,没回厅R这几天有事?nbsp;
她第一ơ不是微W着跟我说话Q也是第一ơ没有过多的说什么,p?jin)那间我天天盯紧了(jin)的储藏室?nbsp;
我愣在那里,好久Q好久,我才反应q来。我H然惛_Q是那种有点委屈Q有点付Z(jin)很多热情却被冯后的难过。可是我没哭出来Q也没掉泪,我只是关?jin)门Q打开?jin)?sh)脑,开始O无目的到处游荡?nbsp;
那晚Q我听到她一个h忙到很晚Q丁零当L(fng)不知道是做饭q是收拾东西?nbsp;
听到那个屋里一直传来一个h的声响,我突然很奇怪,那男人呢Q?nbsp;
我孤单v来,感觉到寂寞的可怕,其是那隔壁的单调的动静(rn)Q让我彻底的开始感觉到n冰凉?nbsp;
我突然意识到Q原来一个h是这么凄清,q么荒凉的可(zhn)Ӏ我裹紧?jin)睡衣,可是仍旧无法驱散q午夜的孤寂?nbsp;
她似乎有点不好意思,在门口站?jin)许久,没有敲门Q也没有要走的意思,低着_(d)好像在思烦(ch)着怎么开口?nbsp;
其实对于昨天那些单的话语Q在南方q个有点h的城?jng),不算什么,客套昑־奢侈Q敷衍是每个人对周遭的理所当然的态度。可是我看得出来Q她qƈ不适应q种Z之之间的hE和乏味的陌\。也许,她以为,在这里还是跟安一栗可是,她单U的Q怎么能想象的出来在异C乡很多时候h和h是没人情呛_a的?nbsp;
我主动开?jin)门Q走?jin)出去,看着她,{她W一个开口?nbsp;
她听到门响,忽的抬v_(d)眼睛里有Ҏ(gu)慌,有点不好意思的ƣ喜。她W了(jin)W,我明昄看到她的眼睛U红的,肿了(jin)Q有哭过的痕qV?nbsp;
她微微点?jin)下_(d)(x)对不起大姐,qx你挺照顾我们的,昨天我心(j)里难受,对你态度不大好,你别在意。我q有事,要赶着出门Q没别的事,我走?jin)?nbsp;
她{qnQ我一把拉住了(jin)奏V我W一ơ像对一个朋友那L(fng)语气问到Q出啥事?jin)?nbsp;
Ҏ(gu)?jin),泪珠子像断?jin)U一P噼哩啪啦的掉下来Q所有的委屈Q压抑,和内?j)深处的痛苦Q都随着眼泪倾泻下来。我毫无防备Q她一下趴在我肩头Q哭出声来。我没拒l,轻轻的环住了(jin)她,想着也许q样能多分担一些她那莫大的苦楚?nbsp;
她娓娓道来,我才知道Q她老公住院?jin)?nbsp;
他老公本来做业务员Q可是由于本性木P不善于交际,所以业l一直不好,只好辞职?jin),另找了(jin)䆾体力zL时做着。由于体质不好,又加上吃的不好,每天都很累,那天Q去上班Q不心(j)被掉下来的砖头砸破了(jin)_(d)住进?jin)医院。本来以工伤,单位?x)报销医药费,可是单位不仅不管Q还把他开除了(jin)。积蓄都花光?jin),她只好回来收拾收拾,然后L老公接回来养伤?nbsp;
我拿Z(jin)张银行卡Q想l她取点钱,暂时用着Q她L不肯Q就一溜烟的跑下了(jin)楹{?nbsp;
下午她和她老公回来了(jin)Q她老公的头上包着U布Q有气无力的样子Q看到我Q还是挤Z(jin)W容。看着他那矮矮瘦瘦的样子,我似乎觉得他看上L那么猥琐Q尽卑微,却很_Q尽怯懦Q却很坚强。我回了(jin)他一个微W,q一ơ,我笑的很真,很用?j)?nbsp;
那一天,一整天Q我?j)情都很好。这是我从来到这座城?jng)后W一ơ这么开?j),W一ơ这么用?j)的W,W一ơ这么在乎自己是否笑的认真?nbsp;
那天Q我看到?jin)自p上掉下来的面P赤裸裸的摆在我面前,露着森白牙无力的呻吟,无力的挣扎,无力的哀嚎?nbsp;
而我Q就那么漫不l心(j)的,拿v打火机,点燃?jin)它?nbsp;
我小?j)翼的敲开?jin)他们家的门Q女的不在家Q上班去?jin),L(fng)颤巍巍的站在门口Q望着我傻乎乎的笑着Q不知道该怎么把我让进门?nbsp;
我ƈ没有要进ȝ意思,那么直直的站在门口Q像聊天一P像跟家h朋友说v话来Q你们单位叫什么名字?凭什么在你上班期间受伤不按工伤负责医药费Q他们有什么理由开除你Q按照《劳动法》你有权?.....我话q没说完Q他傻?c)W了(jin)Q插嘴道Q我知道Q我也读q大学,我也懂法Q可是没用的Q《劳动法》也许真的能保障你们q些白领的合法权益,可是对于一个民工,是没有Q何保障可a的。拿什么保障?谁给你保障?你找谁讨说法Q什么这个机构,那个机构都去q了(jin)Q磨破了(jin)嘴皮子,Ҏ(gu)没h!d位,那些老板雇䄦的打手不把你打残废算是幸q的?jin),再说Q去挨顿揍,最后还是自己掏腰包看病Q更不划。算?jin),我认了(jin),谁让咱没啥社会(x)地位呢Q?nbsp;
听着他的Ҏ(gu)Q听着他那些话语,我似乎感觉到?jin)自qq稚Q社?x)是D酷的,生活是残忍的。报U怸那些民工q年讨要工钱反被打,q了(jin)zLƠ工资,受了(jin)工伤没h的新闻一q幕现在我的眼前。我一下子开始清醒,C会(x)是q样的,你让q样的一个弱者去那里讨说法,你让q样的一个社?x)底层的人,拿什么来l护自己的权益? 
我不再言语,我感C(jin)语言的苍白无力,我感C(jin)词汇的乏,我也感到?jin)自己那些不太现实的x的天真?nbsp;
我有点虚q沉沉的叹息,呓语般的_(d)(x)外面的社?x)太无奈Q这么艰难,q是回去吧,与其q样备受凌i和煎熬,不如回去q虽然困却有尊严的日子?nbsp;
他还是笑?jin),W的有点无奈。他抬v_(d)望着q处Q似乎在自言自语Q回去?回去怎么办?Ơ的学费无论如何要还的,都不q,国家怎么办?国家在我最需要帮助的时候Z(jin)手,我不能忘恩负义,做h要厚道!何况安q有弟弟妹妹在读书,父母也年q了(jin)Qn体又不好Q不赚钱Q怎么供弟妹?怎么ȝ娘? 
做h要厚道!听到q句话,我惊呆了(jin)Q一个生z这么艰隄人,一个落到C会(x)最底层的hQ竟然还想着国家Q竟然做人的原则比我们这些衣冠楚楚的人都高尚。我开始感觉到自己g变小?jin),有些卑微?nbsp;
我睁大眼睛,看着他,有那U很敬畏的目光一直盯着他,x里飘q的全是他那些幽q道来的话:(x) 
农村真的IP很多人都_(d)I生那么多Q其实,Z么要生了(jin)一个还要生一个?谁愿意那么穷q要d个孩子,生活压力更大Q可是没办法。被逼的啊!在农村,了(jin)Q没力_能力的,q于开始要M闲hQ农村的老h没养老保险,没Q何社?x)福利,也没M生活保障。如果不多生孩子Q老了(jin)后,一个孩子养不v俩h老,那还不得zL饿死Q于是只好多生几个,分轻负担。养儉K老是农村不得已的传统Q?nbsp;
每个农村的父母都惌己孩子有出息Q而想改变命运只有考大学一条出路,可是d学却是很昂贵的,所以家里只要有一个考上大学的,全家都要遭殃Q跟着研R卖铁的供着。可是现在大学生毕业工作很难找,其是读的学校不好,专业又不好,更难找;没拿到毕业证{于没上大学Q去M单位人家都要看你学历证书Q没有,只能当民工?nbsp;
说到q儿Q他很无奈的摇了(jin)摇头Q用力的憋着嘴巴Q不再言语?nbsp;
我也没说话,我不知道该说什么好Q因是一个从生zd城市(jng)里的孩子无法惌的,于是我选择沉默。也只能沉默?nbsp;
中午Q我叫了(jin)两䆾快餐Q我端了(jin)一份给他,他说什么也不要。我假装生气道:(x)我打C一个上午,让你没好好休息,请你吃个快餐是表示歉意Q他推辞不掉Q只好接q去?jin)?nbsp;
我知道一个快,太寒了(jin)Q可是我知道Q如果过于奢侈的东西Q他又怎么肯接受? 
晚上Q女的很晚才回来Q篏的一w疲惫。我听到L(fng)_(d)(x)我给你留?jin)好吃的Q你饿了(jin)吧,快吃吧。女人坚持说吃过?jin),非要L(fng)吃,因ؓ(f)L(fng)有伤在nQ需要营充R听着他们推来推去。我的眼眶湿润了(jin)?nbsp;
我知道,我又错了(jin)Q我太不?jin)解他们彼此的爱了(jin),他们的爱是双份的啊!又怎么忍心(j)一个h独吞一份自p为是好的东西Q而让另一个咽着口水眼睁睁看着呢? 
那天Q我l于知道Q两份爱的倍数很大Q很大,很大。以至于我根本无法看到它的边际,无从理解它的内涵?nbsp;
男hl于慢慢的好h?jin),{他完全康复的时候,我托朋友l他找了(jin)份稍微轻杄的工作,虽然赚钱不多Q可是毕竟比先前的要好些。他们夫M带着满怀的感Ȁ不知道说?jin)多遍Q谢谢。尽我一再说q是举手之劳Q可是他们还是不停的说谢谢。弄的我都有些惭愧了(jin)?nbsp;
一个月后,男h和女人兴高采烈的跑来拽着我往外走Q我q没弄清怎么回事Q他们就把我拖出?jin)门外。直到楼下,我才搞明白,原来男h发工资了(jin)Q非要请我吃饭。我呵呵的笑着Q说Q不用客气了(jin)Q都是出门在外,互相照应是应该的Q吃饭就免了(jin)吧。可是他们固执的拉住我,非请不可Q说Q不P于情于理都说不过厅R看着我也一副坚决不ȝ样子Q他们俩急了(jin)Q你是不是怕我们带的钱不够Q不看,我带?jin)好几百呢。说着pL钱。看着他们憨厚可爱的样子,我实在推辞不q,只好{应?jin)?nbsp;
我一边走着Q一Ҏ(gu)着Q怎么h能既让他们请?jin)我Q了(jin)却了(jin)他们的心(j)愿,又能Z们省钱。我惌v?jin)广州最便宜的饭馆,拉面馆?nbsp;
于是我装作沉思良久的样子_(d)(x)我知道有个地方的东西很好吃,我最喜欢吃了(jin)。不如我们去吃兰州拉面吧。他们俩先是一呆,接着pQ那怎么行呢Q怎么能请你只吃碗面呢Q说啥也要请你吃好的?nbsp;
我故意很生气的样子:(x)我就喜欢吃拉面,你们要是诚心(j)hQ就h吃拉面,要是吃别的,我可不高兴了(jin)?/div>
他们俩看我生气了(jin)Q只好答应着Q说Q一切都依着我?nbsp;
C(jin)面馆Q我点了(jin)一牛肉面Q男的点?jin)一素的,一牛肉的。等拉面端上来的时候,男h把最大的一带牛肉的面推到我面前,把另一有牛肉的端l他老婆Q他自己的那却是碗的素的?nbsp;
看着我疑惑的眼神Q男的赶紧解释到Q我喜欢吃素的。以前的伤口q没长好Q吃荤的对伤口不好,素的好?nbsp;
其实我知道,q根本不关伤口的事,我知道他是ؓ(f)?jin)省钱,可是他不会(x)亏待朋友,于是只能亏待自己?nbsp;
看着他大口的吃着面,看着他老婆不停的把牛肉夹到他碗里,看着夫妻两h你不停的你把肉夹l我Q我把肉夹给你;我的嗓子哽在那里Q难受的咽不下去一口面。我能感觉到我的眼前一片模p,不知道是面的热气扑在?jin)脸上,q是有别的东西糊住了(jin)眼睛Q能感受的只有一阉|ѝ?nbsp;
W一ơ,我学着他们的样子,吃光?jin)碗里的面,喝光了(jin)碗里的汤,管我撑的胃疹{可是我W一ơ能感觉到我内心(j)深处很充实,很满?nbsp;
虽然吃的?块钱一的拉面Q但是我知道q一很c(din)那不仅仅是花去?jin)他们好几天的生z费Q让我得到的更不仅仅是饱q胃,而是我从未有q的感激和体?x)。这无论是多钱都不能买得到的,也不是所有h都能得到的恩惠;那种价值只有h性中才有?nbsp;
我想Q这是我至今为止吃过的最늚一KQ它真的很奢侈,很昂c(din)?nbsp;
一个懒z洋的午后,我的那个朋友l我打电(sh)话来Q当我听完他的叙qͼ我吓呆了(jin)Q我不知道他说的是不是真的,也没听清楚事情到底怎么回事Q我只知道,我隔壁的那个L(fng)被抓q了(jin)公共安全专家局?nbsp;
朋友不停的埋怨我Q怎么?x)给q样的h介绍工作Q言语间的不满,无疑是说Q我让他帮忙找了(jin)q个工作Q事情现在弄成这P他在那个公司老板面前已经颜面失。听着他愤愤的挂断?sh)话Q我q道,以后q个朋友是没了(jin)Q更别说再找他帮忙给那对夫妻介绍工作?jin)?nbsp;
我已l来不及(qing)兛_(j)Q这份或许叫友谊的东西还是否能完整的存在Q也无心(j)去跟q位朋友道歉Q我只想知道他怎么P我只惛_清楚事情到底是怎么回事。我在潜意识里竟然多?jin)䆾对他的信任,我告诉自己,也许q是个误?x)?nbsp;
我请?jin)假Q急忙的赶回家Q跑上楼Q去敲那扇门Q可是良久,都没人来开门。我有点pQ我想也许女的已l赶d共安全专家局?jin)?nbsp;
我无力的靠在那里Q望着隔壁我的门,H然伤感h。我看到?jin)我门框上?chung)着一张纸条,我跑q去Q撕下来Q是女的l我留的a。上面没说什么事Q只是留下了(jin)一?**的地址。我来不?qing)多惻I便赶M(jin)那个***?nbsp;
赶到那里的时候,我看C?*正在对女的训话,女的低着_(d)忍住抽泣Q耸动的肩膀g在极度的压抑着要哭出来的声音。旁边还坐着一个中q妇奟뀂那个中q妇女频频的q眉头Q尽量的让n子往一辚wQ唯恐女人那w有点破旧的衣服h奏V我冲过去,拉住女的背问道Q到底出?jin)什么事Q?nbsp;
两个**先是打量?jin)我一番,沉吟?jin)半响,然后口气~和的问道:(x)你是Q我没看他们一|自顾的说Q我?*晚报的记者,Ҏ(gu)我的朋友Q我x扑֥?jin)解一下情c(din)?nbsp;
两个**互相看了(jin)一|半信半疑Q但是又g不敢冒险Q于是姿态便低了(jin)下来Q不再大声的吼着对女话,Ҏ(gu)也客气的套v交情来?nbsp;
我把女h拉到一边,问她到底是怎么回事Q她老公在哪里?女h看着我,q没开口,眼泪刷的掉?jin)下来,我安慰她不要哭,先把事情跟我说清楚,我们再想办法?nbsp;
原来事情是这L(fng)Q今天上午,他老公Mؓ(f)公司的一个客户送资料,在公共汽车站{R的时候,正y遇到“飞Rparty”抢劫正在{R的一个妇女的包。妇x命拉住自q包哭喊,却没有一个hȝQ正在双方你争我夺,僉|不下的时候,他看C(jin)Q想都没惻I冲q去Q帮妇女夺包。无人怎么打他Q甚xZ(jin)刀子,可是他还是拉住包不放手,q时候执?*赶来Q?#8220;飞Rparty”侉K窜?jin)?nbsp;
本来事情p么简单,可是?*赶来的时候,看着他也在夺包,以ؓ(f)他是抢劫犯的同伙Q就问那个被抢的妇女Q认不认识这个男的,妇女一口咬定不认识Qƈ且还Q她也不知道q个L(fng)?#8220;飞Rparty”同伙Q还是另一伙抢劫犯Q反正跑上来夺她的包?*二话不说Q就带走?jin)男人?nbsp;
׃男h着急给客户送资料,所以再怎么解释都没用,挨了(jin)匪徒的打也就|了(jin)Q竟然还?*猛揍一,让他老实交待。他怕耽误公司交待的Q务,只好报出?jin)公司的名字Q本想着q样只是可以赶紧让公司派人来把资料及(qing)时{交给客户Q没惛_Q公怸听,立马不承认他是本单位的hQ也是说他立马p开除了(jin)?nbsp;
**通知?jin)他的老婆Q他老婆一来,p定性ؓ(f)Q抢劫犯家属。不停的被训话,q让她交待问题。她吓得不知道说什么,脑袋一片空白,要是我不来,她真的不知道该怎么办? 
听完她的叙述Q我一股无名火׃来了(jin)。我转n到那位妇x边:(x)请问Q你是受害人?我想采访一下?zhn)Q这是我的工作证件。妇x?jin),不知所措的看着我,我不理会(x)她的莫名其妙Ql问道:(x)请你详细描述一下当时的情况Q你Z么就认定q个帮你夺包的h也是抢劫犯,Z么你׃能认Z是来帮你从匪徒手上夺回包的h呢?
妇女Q看?jin)看我,又看了(jin)?*Q慢吞吞的,l结巴巴的说Q怎么可能有那么好的hQ这q头Q谁q爱闲事啊Q难道他不怕死Q他要是真帮我,那他不是d是_有问题。pol.ice听着Q也频频点头Q似乎她说的才是一个正常的人所应该做的?nbsp;
看着他们理所当然然的表情Q我愤怒了(jin)Q我大吼hQ他如果是抢劫犯的同伙,Z么抢劫犯打他Q他如果也想抢你东西Qؓ(f)什么pol.ice来了(jin)不跑Q在pol.ice来之前那?x),他完全可以抢了(jin)你东西pQ你东西了(jin)么?他打你了(jin)么?有目击证人可以证明他也是在抢你包么?你们pol.ice有什么证据证明他是抢劫犯?是因Z没有q个城市(jng)的户口?q是因ؓ(f)他穿着不够华丽Q一个冒着生命危险帮你忙的人,你竟然还要指责他是抢劫犯Q如果是你被冤枉Q你?x)怎么P 
我深深吸?jin)口气?x)你们在没证据的情况下Q就抓hQ就非法拘留Q你们这是犯法!我指着那个妇女Q你q样不识好歹Q分不清好h坏hQ你不觉得惭愧么Q?N你也要教育你的孩子,事不兛_Q高高挂P 
所有的人都愣在那里Q不说话Q我知道Q在q样一个治安؜乱,世风日下Qh?j)不古的城?jng)Q在q样一个,ZZ间冷漠的不带丁点温度的社?x),在这样一U你被欺负,我无视的风气下,没有人开始相信善良,也没有h?x)去怿?x)有人无U去帮助别hQ甚臛_你去好心(j)的做一件你认ؓ(f)对得赯?j)的事情的时候,在多Ch眼里Q那成了(jin)你伪善的最好外衣?nbsp;
pol.ice可以抓错你,法律可以错判你,可是你要惛_U正q个错误却不是一件简单的事情?nbsp;
抓错你,可以只是因ؓ(f)怀疑你Q就能给你戴个嫌疑犯的帽子;疑罪从无在很多时候只是法律条文里的一句话而已Q现实中能真正诏d施的屈指可数。判错你Q可以有一万个理由归咎于司法的不健全,可是没有Z(x)Z受到的不公待遇负责,提v国家赔偿Q也只是说说而已Q又有哪个h能真的得到过q样的道歉Ş式?Q?nbsp;
我知道,要给他洗清罪名,我必d力以_(d)我必L_的证据证明他是无辜的Q他是好人,他当时是惛_帮助那个妇女?nbsp;
管Q现在妇奛_p其辞,已把自己搞糊涂了(jin)Q自׃说不清楚他到底是不是来帮自己的等{理由来推脱Q不想面对自己遇到好人,反咬一口的事实。pol.ice也以虽然没有证据证明他是抢劫犯,但是事关他出现在事发现场Qƈ与此事有兌为由Q不能彻d底的q他一个清白?nbsp;
我知道,要靠抓住当时的那两个抢劫犯来Zz脱不白之冤可能性微乎其微,我只能想办法扑օ他证据。我利用自己是记者的w䆾Q想办法,扑ֈ?jin)当时事发现场?个目击证人,是一个报亭的老头和一个推着车买水果的妇奟뀂他们都说当旉L(fng)的确是去帮被抢的妇女夺包Q不是抢劫犯。可是当我想要他们陪我去?**跟pol.ice证明一下的时候,他们却死z都不肯。说不想多管闲事Q怕惹一w臊。在我苦苦哀求无果的情况下,我不得不耍了(jin)点小手段Q与其说是手D,不如说是无奈之D?nbsp;
我说我是记者,现在要对那天发生的事Ӟ写篇评论。广州街头一妇女被抢Q好?j)h施救Q反被诬赖是歹徒Q旁观者无出头Q我q故意说Q你们俩我也?x)以匿名形式你们事不关q态度写进ȝQ不知道你们的孩子看?jin),会(x)有何感惟?nbsp;
看着两h有点q疑Q我又说Q如果你们肯证明Q我当然也会(x)在文章中把你们张正义,深明大义的善良D动报道出来的。我怿你们都是好hQ都不会(x)眼睁睁的看着另一个好诬赖受不白之苦的?nbsp;
他们掂量?jin)很久,l于q是被我说动?jin)?nbsp;
我又L?jin)男人公司的上司Q尽他很不情愿的开证明说那天的是z人去l客户送资料的事实Q但是碍于我与他们老板朋友有交情的情面Q还是开?jin)。尽,我也知道Q那个原来的朋友其实也许已经没得朋友可作?jin)?nbsp;
我找?jin)律师,咨询了(jin)这斚w的法律,托了(jin)很多朋友和同学,l于把男人弄出来?jin)?nbsp;
管出来的时候,pol.ice没一句道歉的话,管那个受过他帮助的妇女没一个谢字。可是,我看得出来,他ƈ没斤斤计较的d乎。v码证明了(jin)他无|,证明?jin)他是个好h?nbsp;
当这件事发生的时候,我失M(jin)原本可以UC为好友的朋友Q甚臛_M(jin)以后可能再联pȝ可能。但是我得到的更多,更多Q我得到?jin)让一个好人恢复声誉的Z(x)Q我得到?jin)去帮助一个值得d助的人幸q,我也得到?jin)一份我对自qp的感Ȁ?nbsp;
我不知道Q他以后再碰到这L(fng)事还?x)不会(x)毫无顾虑的冲上d忙,也不知道他内?j)是不是已经开始对于做一个好人的概念有了(jin)新的诠释Q可是我知道他本质的善良不会(x)因此而动摇?nbsp;
可是无论怎样Q也不管以后他会(x)不会(x)l箋q样做,我们都没资格再去怪他Q也没权利去让一个受q伤害的好h忍着痛再去迎头顶刀子!因ؓ(f)Q那个拿刀子伤害他的hQ其实就是我们,我们q些人,我们q个C会(x)?nbsp;
天空飘着雨,有点阴霾Q来来往往的h潮,L(fng)一张张没表情的脸,l箋在这个城?jng)生zȝQ没有h知道曄发生q这L(fng)一件事Q甚臛_初亲Dq此事的Z许早已当作一个谈资将光落在脑后?nbsp;
世界忘记?jin),可是我记得,那天记得Q岁月记得?/div>
自此以后Q那夫妻L昑־有点卑微QL在感Ȁ?jin)我之后Q有Ҏ(gu)不v头来的难q。似乎全都是他们的错Q似乎他l我们,l所有的人添?jin)很大的ȝ?ch)一栗也许,真正善良的h都是q种?j)态,L不停的从自n扑֎因,L觉得如果我够好,又怎么?x)这P却从来不L罪别hQ不L责Q推卸到别n上?nbsp;
我试囄男h再找份好点的工作Q无奈,夫妻两hLW眯眯的_(d)(x)不麻?ch)?jin)Q他们找到工作,已经在上班了(jin)。其实我?j)里明白Q他们知道上ơ给我添?jin)ؕQ是无论如何弥补不了(jin)的,管我不在乎Q可是他们在乎,他们不想再来让我为难Q所以便拼命拒绝我的好意?nbsp;
男h早出晚归Q我x许是真的扑ֈ工作?jin)。看着他们每天{疲力尽的样子,我心(j)里酸酸的Q却又不知道该如何帮他们。我W一ơ感觉到Q那U无可奈何的难过Q竟然是能折h的?nbsp;
元旦的时候,我在楼道遇到他们Q夫M人高兴的跟我打招|说要出去吃大。看着他们有说有笑的出门,我心(j)里不艳v来,也许在我们ؓ(f)他们难过的时候,他们却能扑ֈ属于他们自己的生zȝҎ(gu)快乐和幸?nbsp;
W二天,我一看到他们Q就开始调侃:(x)昨天d里吃的大?他们q没有不好意思,而是秘的笑?jin),那笑有点天真Q又有点温暖。女的趴早我xҎ(gu)(zhn)的_(d)(x)大姐Q你知道么?有种店,是一块钱吃到qQ我惊诧?jin),睁大眼睛看着他们?nbsp;
在广州呆q的人都知道Q有很多快餐店,Z(jin)吸引֮QdƢ在门口张脓(chung)着一块钱吃到q大条q,可是我们每个去过的h都知道,那只是一U标语,真的q去消费?jin),是永q不可能?x)让你花一块钱吃顿饭的。说句实话,q去吃饭q你一个hQ吃下来Q再怎么节省也要20块钱。何冉|夫妻俩h一块去吃呢Q?nbsp;
我很怀疑的看着他们Q他们似乎有点不好意思了(jin)Q男人终于忍不住?jin)说Q真的,大姐Q我们没骗你Q我们昨天去吃过?jin),我们两口子一共就׃(jin)五块钱!我失W出壎ͼ(x)怎么可能Q米饭一个h都要两块钱呢,五块钱,你们吃的啥? 
女h嘿嘿的笑?jin)?x)我们q去Q看菜单Q发现只有一U小菜是一块钱Q就是花生米Q这么小一。一边说着Q她便用手比划着Q其实她不比划我也知道那花生,估计一׃?x)超q?0_花生米。因为在馆里,q种一块钱一的qcI只是Z(jin)响应他们的一块钱吃到q口号的。现实中真正ȝq个菜的人屈指可数?nbsp;
女hq在眉飞色舞的说着Q他们的例汤是免费的Q一大盆呢! 反正c饭按h头算钱,一个收两块Q我们俩qqc一人吃?jin)四米饭,喝光了(jin)所有的汤,吃的饱饱的,只花?jin)五块钱呢?nbsp;
说完Q他们俩相视一W,反而让我觉得不好意思v来。我不知道,他们是怀着多大的勇气,走进一个还不错的餐馆,坐下来,只点一花生米Q却能吃完四饭的?我也不知道,他们在喝光免费的汤时Q?一_花生米q一饭怎么吃的那么满I那么开?j)?nbsp;
我想Q当Ӟ肯定有很多h用异L(fng)眼光看着他们Q甚臌?x)有人窃H私语的W话他们老土Q也总们甚臌够听到别Zq话语Q也能看到别人鄙视的眼光Q但是他们却q能l箋坐在那里Q吃完那KQƈ且是高高兴兴的吃完,然后拿五块钱M单?nbsp;
我ƈ不觉得这样做有多么可耻,也ƈ不觉得这样做?x)有什么不妥,拿五块钱来消费也是顾客,消费五块钱ƈ不就比消费了(jin)50块的客h低一{。但是,无论什么时候,我们却往往看到在某些消费场合,g高消Ҏ(gu)能得到好的周到的服务Q又g有钱的更能得到尊重?nbsp;
我承认,如果是我Q怀里揣着五块钱,是绝对不敢去q样的餐厅消费的Q我没有勇气d叫一一块钱的花生米Q也许尽我的食量只是一米饭加一花生米Q但是我q是?x)要几个也许我根本不会(x)动一{子的奢侈的菜。其实内?j)也知道那是费Q但是又有哪个h不喜Ƣ用q费来购买自己面子的实惠呢? 
在这个社?x),有钱的比没钱的说话更有底气,富有的比贫穷的更能得到别人的重Q高高在上大都是有钱人,C会(x)底层的都是困R倒的。毕竟现在是商品?jng)场的社会(x),l济cd军_?jin)钱是多么重要,钱变成?jin)自尊Q面子的代名词。我们每天都zd赚钱买面子的日子里。在我们奢侈的去花大W钱买所谓的面子的时候,我们是否?x)想h那么一hQ还挣扎在温q上呢Q?nbsp;
月薪不如别h高感觉没面子Q到现在q没有百来^方的房子感觉没面子,工作?jin)几q还是普通职员也觉得没面子,看到别h的老婆比自q漂亮也会(x)觉得颜面失Q甚至会(x)因ؓ(f)别h的衣服比自己的名牌也?x)汗颜。我们活在一个面子至上的世界Q那点卑微的自尊?j)L遮掩着自己脆弱的颜面。回首已逝去的岁月,才发现其实活的ƈ不快乐,是因的钱太少?jin),C赯够的面子Q还是赚的钱买来的面子,遮住?jin)自q人性尊严? 
金钱Q生存,面子Q自;在h生的天^上,到底孰重孰轻Q! 
q前Q我懒洋z的{待着春节的到来,想着是否该回安父母q年。在我犹豫了(jin)又犹豫的时候,我发现离q年q不?0天了(jin)Q我惛_司是非要靠到q前才肯攑ց的,想着又要买全L(fng)飞机,便在?j)里开始狠狠的惻I(x)明年一定不再磨y,提前俩月买票Q估计就能买4折的飞机回M(jin)?nbsp;
在我敷衍着q前最后几天的班,想着如何找个借口提前请假回家的那几天Q我一直没看到隔壁的小夫妻。我以ؓ(f)他们早就回家q年M(jin)?nbsp;
可是在一天半夜,女的敲开?jin)我的门。我睁开惺_的眼睛,含糊的问着Q有事么Q女的显得很不好意思,_(d)(x)对不P打扰你了(jin)Q我惌(zhn)帮个忙Q听说民工能|上订票Q你能不能帮忙看看?我答应着Q让她进?jin)门Q我打开?sh)脑Q开始帮忙给她订火R。可惜的是,|上订票是要民工单位团体订票Q她和她老公的单位都没有人给他们订票Q他们个人又没资格网上订。她看了(jin)看规定,很郁L(fng)C(jin)。我qp糊的竟然忘记说句安慰她的话?nbsp;
W二天,我心(j)里一直记得这件事Q总觉得该做点什么。我从新M看到可电(sh)话订,便匆匆记下了(jin)L(fng)Q准备给他们个惊喜?nbsp;
下班旉q没刎ͼ我就急忙赶回M(jin)Q我回去的时候,女h在家Q我好奇她ؓ(f)何没M班,但是我只儡说电(sh)话订的事,没来得?qing)问。男Z在家Q我iQ叨叨的跟女h说着?sh)话L(fng)Q我q掏?gu)q手机让她赶紧打电(sh)话订?nbsp;
女h苦笑?jin)一下,没接我的手机。眼里含着泪,哽咽着Ҏ(gu)_(d)(x)我就是因为打?sh)话订票Q被老板看到开除了(jin)。说着便苦hQ我q个月半个月的工资也没给Q说我是q反规定?jin),不罚钱就是宽大处理了(jin)?nbsp;
原来Q女Z听h_(d)可以?sh)话订票Q从一大早h去IC?sh)话亭打电(sh)话Q可是L不进去,在中午吃饭旉Q偷h出去打电(sh)话订,可是打通了(jin)p已售完。一q一个星期都是如此,女h实在没办法,只好在早上店里没客h的时候,用店门口那个公用?sh)话l箋打电(sh)话,8点半打通了(jin)Q女人高兴的不得?jin),以?f)q次l于可以订到了(jin)Q结果却说票已售完。票没订C_(d)打电(sh)话却被老板正y看到?jin),说她上班旉做私事,把她炒了(jin)。无论女人怎么苦苦哀求,q是惨遭开除?nbsp;
我一边安慰女人:(x)反正要过q了(jin)Q也要赶着回家q年呢,不干?jin)也好,明年回来找个更好的工作。一边说Q要不再用我手机打打试试Q说不定能订到票呢?nbsp;
女h摇着_(d)(x)不可能的Q我老乡?sh)话打?jin)十几天了(jin)Q也没订刎ͼq早上八点一开通服务,你第一个打q去Q也订不到票Q因个列ơ的火Rq年很紧张,不可能正当途径买到?nbsp;
我以前只知道q年买火车票难,可是没想到这么难。我问Q去火R站排队买不行么? 不是听说那里很多贩子么Q实在买不到׃黄牛吧?nbsp;
女h沉思半响,_(d)(x)我老公已经在火车站排队排了(jin)半个月了(jin)Q还没买到票呢。他白天请假L队买不到Q晚上就通宵不睡觉在那里排队乎ͼq是C到。票贩子天天看到我老公Q主动找我老公说了(jin)好几ơ,说他们有,保证真的Q可是手l费太贵?jin),我们不舍得阿Q?nbsp;
我说Q多手l费QM能比火Rh(hun)q贵吧!女h咧嘴W了(jin)Q那W有点勉强:(x)我们回去Q坐Q票h200多,可是手箋费却?00Q你说两张票q票钱加手箋费就?000多,我们一个月的钱啊。这不是喝我们血么?1000块钱Q在我们老家Q是一q的收入啊,我们怎么能舍得呢Q?nbsp;
听着她的话,我无语了(jin)。我H然感到很自卑,感觉自己竟然是那么浅薄,那么无知?nbsp;
Z(jin)两张回家的火车票Q工作丢?jin),俩h日日夜夜L队买,拿着生活费去打那个比镉K还늚?sh)话Q半个月下来Q得到的l果竟然是:(x)已售完?nbsp;
那么多火车票d里了(jin)Q?Z么天天排队买都说没了(jin)Q票贩子却又喊着Q去M地方都有,手箋?00元呢Q?nbsp;
到底Q票都到?jin)何人的手中Q?又是怎样C(jin)q些人的手中的呢Q而那天h(hun)手箋费的暴利到底在养zȝ谁? 
我气冲冲的拨通了(jin)火R站的服务?sh)话Q我刚说完Rơ,p告知Q春节前本次车票已全部售完,误{乘其他Rơ?nbsp;
我有些失望,试图劝说他们能不能{车回去?或者坐镉K汽车?女h惨E的笑?jin)笑Q大姐你别操?j)?jin)Q没法{车,能经q我们那个小地方的,p一个Rơ,到别的地方倒RQ也不好买票Q还是回不去Q汽车太贵了(jin)Q都快赶上飞机票价了(jin)Q不如走回去呢。说着q半安慰我似的开着q个黑色的玩W?nbsp;
看着她紧锁的眉头Q想着也许q会(x)她老公q在火R站满怀着那么点希望排着队,{着老天爷大发慈(zhn)Ԍl他们两张回家的,而我却还在犹豫着q年回不回去陪父母,想着回趟家真累,来回路上够折腾h的?/div>
我开始觉得自q卑鄙Q甚xؓ(f)。他们也许可以不回去Q但是却非要坚持回去Q是Z(jin)双方q迈苍老的父母Q还是ؓ(f)?jin)回d担家里的忧愁Q无论怎样Qؓ(f)?jin)回去,却要付出q般代h(hun)Q值得么?也许很多Z以ؓ(f)?dng)可是在亲情的天^上,q个砝码却很重?nbsp;
一张过q回家的火R,那么一张薄薄的U片Q不知道要费多少?j),伤多神Q排多少个夜晚的队,付出多大的代h能得刎ͼ那里面到底藏着多少回家人的血汗,又写着多少回家人无奈的眼泪Q! 
我的飞机已l订好了(jin)Q全P 
每到q年Q航I公叔R开始腰杆子v来,打死不打折,可是飞机却依然紧俏Q中国h都太恋家Q过q花在回家\上的路费Q也是Ҏ(gu)动经增长做点A(ch)献了(jin)?/div>
“铁老大”Q仍然牛气烘烘的一边说着加开临时列RQ又一Ҏ(gu)歉的告诉你:(x)已售完?nbsp;
隔比夫妻在轮班排队买的情况下,q是没得到回家的那一张通行证?/div>
他们天天在火车站{着Q?/div>
盼着哪天能有个好?j)h来退,可是q种奢望很ؓ(f)茫,他们g也感觉到无力回天Q除?jin)等待奇q,只能盘算着是不是真的要走回家?nbsp;
在此期间Q我一直不停的在网l上搜烦(ch)着关于q辆车次的消息。每ơ看到有{让,我都急不可待的去联系Q可是都是票贩子在打q告Q手l费比票价都高,而且行情看涨Q越来越高?nbsp;
我想帮他们出手箋费,只要他们出票P可是他们L不答应,说是原则问题Q就是走回去也不买高L(fng)。他们很正式的跟我说Q我们是中国公民Qؓ(f)什么坐车要买高L(fng)呢?我们又不比别Z一{!N我们没权利去享受一张正当h(hun)q么Q都M高h(hun),以后q的只有高L(fng)Q没有正当的火R了(jin)Q那些暴利养zȝ都不是好人,我们这样养他们Q他们越贪婪?nbsp;
听了(jin)他们的话Q我沉默?jin)?nbsp;
我突然害怕vq个有点病态的C会(x)来,我怕那致命的细菌会(x)感染我! 
我感到那么无能ؓ(f)力的难过Q我很想Z们做点什么,可是我却到头来什么都没能Z们做Q甚臛_是两张火车票Q我都不能帮他们?nbsp;
我最l没逃脱Q找关系Q走后门的那些俗套。我托了(jin)朋友Q朋友又托了(jin)朋友的一个在火R站工作的朋友Q费?jin)?ji)牛二虎之力才弄到两张񔼜。吃饭,应酬Q说着冠冕堂皇的感谢的话,最后,l于在每张票多付?00元的情况下我才有Z(x)把票握在手里?nbsp;
酒饭饱后,那h打着酒嗝q在l箋不停的说着Q票是多么难乎ͼ别h多出300块手l费他都没给Q因为看在老朋友面子上他就当免费帮朋友的忙?nbsp;
我只好用感激的眼望着他,说着千恩万谢的话Q用一U谢谢你的大恩大L(fng)态度来应承他的恩惠。他满的笑着Q我也在?j)里满意的想着Q有?jin)票Q他们终于可以回家过q了(jin)?nbsp;
当我把两张R放在他们面前的时候,他们呆住?jin),用一U难以置信的崇敬的眼望着我,良久都不说话。我W着Q什么话也没说?nbsp;
女hH然问道Q你是不是买来的高h(hun)?我摇摇头Q那是哪里来的Q我W了(jin)。我没说实话Q我不知道ؓ(f)什么,在他们面前有些虚伪的实话是不需要说出来的。我告诉他们。票是我的一个同事的朋友买的Q原本要回家q年Q可是公司突然说有事Q回不去?jin),只好转让。结果正巧让我知道了(jin)Q我p紧买q来l你们送过来了(jin)。我怕他们说q事,赶紧补充Q票人家没多要一分钱Q要不去火R站退还要扣手箋费呢Q你们要?jin),正好解决了(jin)h家后之忧,人家q省׃(jin)呢?nbsp;
他们高兴的说不出话来Q一Ҏ(gu)接q去Q反复的看着Q抚摸着Q一Ҏ(gu)q我。我说什么也不要。他们便怔住?jin)脸Q说我不要钱Q他们就不要。我没办法只好收下了(jin)钱?nbsp;
他们走的日子比我早,我去车站送了(jin)他们。我偷偷C(jin)些广州特产和水果Q在他们(g)进ȝ时候,把东西塞C(jin)他们其中的一个大~织袋里?nbsp;
看着他们拎着大包包Q里面装满的或许不是值钱的东西,但是怸z溢着的幸的Ƣ笑里,让h感觉那一切都很珍c(din)?nbsp;
他们不时的回头看看我Q用拎着包的手用力的跟我挥手Q咧嘴笑着Q眼里的光彩很温暖Q我内心(j)涌v一U莫名的感动。竟然有惛_的冲动,我忍住了(jin)Q也W着朝他们挥手?nbsp;
他们的n影渐渐消失在人群中,我没赎ͼ站在那里Q我g听到?jin)火车的鸣笛壎ͼ那一定是他们要回家的那列火RQ那火R里一定有他们要回家的两个座位?nbsp;
归途很累,很遥q,可是回家的\却很温暖?nbsp;
我第一ơ觉得过春节不那么无聊,我第一ơ觉得来回的路上不那么劳累。整个年Q我q的很快乐,当我再次回到q州的时候,他们夫妻q没回来?nbsp;
我想Q他们一定是C到火车票Q要{过?jin)高峰期才能q回。我安静(rn)的等在那里,看着那扇我隔壁的门,希望Q在偶尔一天,能再看到那熟(zhn)的w媄(jing)?nbsp;
他们来的真的很迟Q元宵节q后一个星期才姗姗来迟。我微笑着q接他们Q端L买的汤圆Q跟他们分n我所有的快乐?nbsp;
女h跟男人商量着Q想推个木车卖Ҏ(gu)果或者小吃。问我的意见Q我说好。与其给别h打工那么累,q不自由Q倒真不如自己买点吃赚钱好些?nbsp;
于是夫妻俩,便买?jin)个二手的小木RQ批发了(jin)点菠萝,西瓜Q在家练熟了(jin)削菠萝和西瓜的技术,便开始上街卖起了(jin)西瓜菠萝Q一块钱一块。白天女Z个h去,晚上Q夫M一起出门,q州q么乱,丈夫不放?j),再晚都陪着老婆卖完?jin),再回来。第二天一早,又去上班?nbsp;
看着他们恩爱的每天出?gu)q,我由L(fng)慕却又高兴着Q我惻Iq苦,两个人分担开来,也是甜的Q如果将来能有这样一个hҎ(gu)_(d)无论痛苦NQ我都会(x)在你w边。我听了(jin)一定会(x)哭着嫁给他,虽然我不知道要等q样的一个h{多久,但是L(fng)有了(jin)憧憬Qh便分外的有了(jin)希望h?nbsp;
有时Q很晚了(jin)Q还没把削好的卖完,他们拿回来Q分l我吃。我每吃一块就?x)笑着对他们说Q我又吃掉你们一块钱?nbsp;
其实我在?j)里明白Q他们完全可以不用送给我吃Q他们生zL据,完全可以自己吃掉Q剩下的又不多,水果吃了(jin)又对w体好,以前qx都不舍得买。可是他们仍然愿意分l我Q因为,在他们的内心(j)里,他们认ؓ(f)是好的东西,都愿意跟别h分n?nbsp;
记得以前Q在学习(fn)和生zMQ我们经常能接触刎ͼ(x)无私Q奉献,善良q些好的字|可是不知道什么时候我们的周围发生?jin)变化,在我们的字典里再也看不到那些丽的东西,自私自利Q冷漠,代替?jin)那些小的感动Q成?jin)我们的L?/div>
当我Q又一ơ体?x)到q种久违?jin)的感觉的时候,我欣喜若狂,像个孩子捡拾C(jin)珍贵的宝贝,我想我一定好好珍藏v来,在哪天忘记的时候拿出来看看Q提醒自己?nbsp;
那天Q我下午回来Q看到女人在Ӟ很奇怪她没出d东西。就半开玩笑的说Q老板Q该开工了(jin)Q怎么q没赎ͼ女h看到我,先是灿然的笑?jin)笑Q说Q今天一天都没出去,做买卖的家什没了(jin)Q?nbsp;
没了(jin)Q卖?jin)?丢?jin)Q我q炮竹的问道。她_(d)(x)昨晚Q被城市(jng)理者抓C(jin)Q都l砸烂了(jin)Q?nbsp;
砸烂?jin)?凭啥Q我气v汹的问。她无奈的摇_(d)_(d)(x)说是影响?jng)容市(jng)貌Q还影响环境卫生Q他们没别的事,是专门抓小商贩的! 
我惊呆了(jin)Q抓商贩的Q我H然一阉|哀Q就有一百个理由抓你们,也用不着砸打抢吧Q! 跟别明白不就行了(jin)么?用的着q么土匪行ؓ(f)么? 
女h听了(jin)我的话,竟然W了(jin)Q说Q我心(j)疼那菠萝西瓜Q好好的Q削好的被扔?jin),没削好的也被砸烂了(jin)扔的满地是Q我倒糊涂了(jin)Q是我们推小车卖西瓜脏呢Q还是把西瓜砸烂在地上,弄的一地西瓜渣滓脏呢?Q?nbsp;
听着女h的疑问,我竟然不知道怎么回答Q?nbsp;
是啊Q到底是谁更肮脏Q是那卖西瓜的小贩?q是那砸西瓜摊的城市(jng)理者? 
原本q干净净的一切,I竟谁是|魁RQ究竟是谁弄脏了(jin)我们的世界?Q?/div>
35?nbsp;
一辆花?jin)一个月生活费买来的破旧的小木RQ一堆花?jin)半个月生活费买来的西瓜菠萝Q竟然在光天化日之下Q被一同栯你都叫做人的家伙怺(jin)个稀巴烂QQ׃苦苦哀求,ȝ你好话说,也Q׃眼泪滂沱Q?nbsp;
无情的打砸把你要生存的一点点希望l砸,h的言语将你最后的自尊践踏的体无完肤,吼来喝去的态度对你的乞求熟视无睹,pP在一个h人^{的C会(x)里,你被在了(jin)脚底下! 
我能惌的出Q女人当时的那种?j)碎Q那U绝望,那种甚至是可怜的严被践t的伤?zhn)。可是,q我再怎么ȝ解,我却永远不能替代那种伤心(j)Ʋ绝的体?x)。也许,q就是hcȝ(zhn)哀Q一U你无论如何不能逾越Q不能跨q的鸿沟Q你只能M(jin)解,却不能去感受?nbsp;
我无力的想着所发生的一切,却又无能为力的苦W。我竟然想ؓ(f)她讨个说话的能力都没有,我感C(jin)自己的有限,感到?jin)自己d接受?jin)别人的恩赐后却不能报答的那U难受,那种矛盾的苦楚?nbsp;
我很惻I再出钱帮他们买辆RQ可是女无论如何不敢d西瓜菠萝?jin),不是怕城?jng)管理者,是受不了(jin)那种zȝ生的好东西被p蹋的场面,是见不得那种一片狼藉的情景?/div>
我尽量出些能赚钱的主意,女h说老乡帮她找了(jin)个发传单的兼职,不篏Q她惛_做着。我看着Ҏ(gu)些消瘦的脸庞Q心(j)很疼Q?nbsp;
想着q些天发生的事,我越惌上火Q恨不得把这个世界洗刷一遍,可是只我一个h的眼泪不够,甚至全世界的人的眼泪也不够! 
我竟然气的牙Dv来,半边脔R肿了(jin)Q疼的我食不下咽QE子也因ؓ(f)牙疼上火Q流鼻血。我q脆请了(jin)假,d院看牙?nbsp;
几天折腾下来Q吃药,打针不管用,后来重新(g)查,又说牙疼发炎引v?jin)这里毛病,那里毛病Q然后又开始治疗,又一通打针,吃药Q检查,再检查,l果q是没好Q牙ql疼着Q我l箋郁闷着?nbsp;
最后,ȝ觉得l我拔牙补牙Q会(x)更有效,又折腾了(jin)几天Qȝ开始{好。这一个牙|׃(jin)6000多块。我才知道,原来嘴巴里长的是28颗金豆子Q贵着呢! 
可是看到新闻上那些天价医疗费Q我又欣C(jin)Q别人看个病都几百万呢,我才6000够便宜的?jin)?nbsp;
我突然感慨v来,也许有的付得起天价医疗费Q可是我付不P也许我能付得?000块钱的治疗牙疼的钱,可是有的人就付不P和还有更多的人比我IPq有更多的h看不L(fng)Q?/div>
看病贵,看病难,q已不是什么新鲜话题,可是q个Ҏ(gu)蒂固的问题却始终没得到解冻I我想到我们不q的d印度Q它虽然q不太富有,虽然也h口众多,但是ȝ制度却还完善Q全民医疗免贏V我不由的M慕v来,不由的想着哪天我们也能享受到此{待遇! 
如果能有那么一天,我想Q报道上再也不?x)有某某女孩得白血病家人們֮荡{wȝQ也不会(x)有,Q?/div>
生病是谁的错Q?w体的错么?Q?没钱ȝ是谁的错Q家人的错么Q!ȝ费用居高不下谁的错?ȝ的错么?Q?nbsp;
也许谁都错了(jin)Q也许谁都没错!
那天Q我捂着半边脸,忍着隐隐作痛的牙Q心(j)里恨恨的惻I(x)q?000块钱是白花?jin)?nbsp;
女h自从摊子被砸?jin)后Q便D发传单,可是zdq不是天天都有,所以也是有一天没一天的在家歇着。这天她看到我蹲在门口,q头不说话Q吓坏了(jin)?nbsp;
Ҏ(gu)?jin)拍我的肩膀Q我抬v_(d)Ҏ(gu)看到我的脸肿?jin)。她?j)疼的问Q怎么?jin)?q是Q我嘴里含糊不清的嘟囔着Q倒霉啊,牙疼Q快要老命?jin)?nbsp;
Ҏ(gu)忙问:(x)看医生没Q要不要紧?我从疼痛的牙~里挤出单的话:(x)看了(jin)Q没用, 白花6000块,现在是牙也疼Q心(j)也疼Q?nbsp;
女h让我张开嘴看?jin)看Q自语道Q肿的很厉害Q要从根里治Q你{着。说完就一溜烟跑回家?nbsp;
不大?x),女h端来一黑乎乎的汤水要我喝Q我看着脏兮兮的Q就pv?jin)眉头。女人硬逼着我喝下去。就q样Q连l好几天Q女人都让我喝那U苦苦的黑汤水。结果竟然消肿了(jin)Q慢慢的牙也不怎么g(jin)。我想一定是那黑汤水起了(jin)作用?nbsp;
原来Q女人怕在异地他乡生水土不服或者有个头D热的Q就从老家带了(jin)些中药过来,正好她老公有牙疼的毛病Q就带了(jin)些这斚w的中药。看到我疼的厉害Q她把那些药都熬了(jin)汤给我喝Q没惛_吃了(jin)几付Q就好{?jin)?nbsp;
我想着Q她把药都熬l我喝了(jin)Q万一哪天她老公牙疼Q可怎么办?女h竟然W笑Q没事,他咬咬牙挺q去?jin)。我知道牙疼的滋呻I所以心(j)里还是后(zhn)吃?jin)h家的药?nbsp;
我问q药很贵吧?女hW了(jin)Q不值钱的,都是些花啊草啊的Q家乡的׃多的是,又不是什么高U技生出来的化?*Q只几块׃副! 
我开玩笑的说Q几块钱Q那我那6000块钱不是喂狗?jin)?女hW了(jin)Q我们那里穷Qh病去不v医院Q只能找个老中d点中药熬熬喝Q?000块看个牙|是村长一辈子也没q个气Q那要多h家一q的收入呢?nbsp;
我听着女h的话Q开始心(j)凉凉的?000块,q数字在我心(j)里边格外沉重?nbsp;
女hH然问了(jin)一句:(x)在这里的医院生孩子要多少钱?我沉吟了(jin)一下说Q估计要个一万块吧!女h吓了(jin)一跻I(x)一万块Q那要是生完?jin)就赎ͼ不住院呢Q我想了(jin)惻I(x)也要好几千吧Q女人愣?jin)?x)马上要生?jin)进医院Q让ȝ帮忙接生出来Q我立马ChQ也要上万么Q我不用他们啥东西,借他们点旉Q搭把手p?jin)?nbsp;
我没明白女h话的意思,也没往深处惻I只是担心(j)着那些月收入不_元的民工的老婆Q如果来到这大都?jng),不小心(j)怀孕了(jin)Q来不及(qing)回乡下老家生Q,他们要拿什么去q这大城?jng)医院的大门Q^安的把孩子生下来呢?Q?nbsp;
生存是h共同的权利,如果q生存都被剥夺,或者说为生存要付出惨痛的血的代Pq样的生存还能配的上人类赋予它的最初的意义么? 
一个生命,一颗牙齿,一句问话,告诉我:(x)生存= 艰辛Q?nbsp;
看着自己滚圆的大腿,一天肥一圈的腰枝Q近D动的庞大w体Q我再也不能忍受**渐臃肿的w体。我军_要减肥! 
减肥Q对于一个有些懒惰的人来_(d)是很困难的事。克服这个问题,需要一个支撑点Q我惛_找一个h监督Q或者找一个h陪我减肥来调动我的积极性?nbsp;
我脑里y出的第一个hQ就是隔壁现在不用忙着上班的女人。我毫不犹U的告诉了(jin)Ҏ(gu)的想法,Ҏ(gu)q疑q应了(jin)?nbsp;
从此Q她每天早晚都陪我跑步,陪我做运动。每ơ我都自嘲的跟她开玩笑Q我真残忍,找你q么一个皮包骨头的瘦子跟我一起减肥!Ҏ(gu)L安慰我:(x)ȝw体有益健康是好事,不管胖瘦q动都有好处?nbsp;
我心(j)安理得的每天让她陪着我,看着她越来越瘦,我又不免内疚Q可是每ơ她的笑脸却又把我的那点愧疚吹的荡然无存。我只好L借口减肥Q把好吃的,好喝的都l她Q她不要Q我q气,Ҏ(gu)办法只好收下Q眼里却L满是不好意思的感激和受之有愧。于是她用更拼命的陪我运动来偿还我对她的那点小的恩惠?nbsp;
我做梦也没想刎ͼ愚h节后的第二天Q她来告诉我Q她要回老家?jin)!我以为她在补上愚没给我开q火玩笑的机?x),可是我错了(jin),?gu)真的要回Ӟ因ؓ(f)Ҏ(gu)孕五六个月了(jin)Q?nbsp;
Ҏ(gu)来是打算在这边生的,后来听我说到生孩子估计都要上万的Q就下决?j)提前回老家Q在老家待。怕再晚,挺着临盆的大肚子坐火车不方便Q所以才军_现在p?nbsp;
我惊呆了(jin)Q不知道该说什么;我满脑子现的都是,Ҏ(gu)孕了(jin)Q我q让奚w我做剧烈q动的镜_(d)我感到自q可恨Q一个怀孕五六个月的女hQ挺着隆v的肚子天天陪在我w边Q我竟然视而不见,是我自私到只考虑自己Q还是我h到忘C(jin)他hLQ?nbsp;
想着Ҏ(gu)天笑靥如花,从来没表现出半点怨言和不高兴Q我W一ơ感到自q可恶。我开始鄙视自己,憎恨自己那种?fn)惯于接受别Z出的不良嗜好?nbsp;
看上去,Ҏ(gu)瘦了(jin)Q于是我更痛恨v自己来。也许她每天没命的跟我锻|回家却吃不饱Q第二天却要半饿着肚子l箋陪我q动Q肚子里q有一个消耗着营养的胎儿,q是怎样的一份艰辛的?j)情Q这是怎样的一U残忍的场面Q?nbsp;
当我大吃大喝Q山珍v味的把自己喂L一个十的胖子Q却要求一个每天吃不饱Q饿着肚皮的孕妇跟我一赯动减肥?Q这是人性的自私Q这是我的自私到极点的本质的最有力说明?nbsp;
我不得不承认Q自始至l,我ƈ没高到哪里去,我还是那个第一ơ见他们的时候的那个龌龊的hQ尽极力想用帮助别人来掩盖自己的哪些自U的本性,可是q是p|?jin),本质像个烙印Q已l刻q了(jin)我的灵魂深处Q?nbsp;
面对q着q样一个残L(fng)事实Q我开始无地自容,我突然感觉我Ҏ(gu)配不上做他们的朋友,管我曾那么的想Q但是我不够|也没资格d下那份上帝面前的契约Q我只是个自U的懦夫Q我没权利要求灵对我有M丝毫的原谅! 
我被自己重重的摔倒在CQ被人性的刀子割的体无完肤。那感觉很痛Q很LQ?nbsp;
我的所有的思想Q他们ƈ没有M的觉察,只是用一U?zhn)伤的情A跟我道别?nbsp;
女h是一个h走的Qؓ(f)?jin)省钱,女hL没让男h送?nbsp;
我不知道一个挺着肚子的女人,拎着大包包好几个,在熙熙攘攘的人群中是怎样挤上?jin)火车,又是怎样的一个h孤孤单单的回C(jin)家。但是,我知道,如果是我Q我做不刎ͼ不是没勇气,是没那个能力Q?nbsp;
没几天,男h搬C(jin)Q因Z觉得一个h住个几百块的房子不划,赚的钱都搭在住上?jin),Z(jin)省钱Q他选择?jin)免费的Q和一民工一起住在一个桥下搭的窝里。男Z(f)走的时候,我给?jin)他一个信,信封里有一我写给他老婆的信和一张银行卡。我叮嘱他,无论如何Q回家的时候记得把信带l他老婆。他点头{应着Q很坚定的说Q保证完成Q务?nbsp;
从此我隔壁的储藏室空出来?jin),房东说我可以放我那张旧沙发?jin)Q可是我没放Q只是在每次l过的时候,都会(x)停下来,默默的盯着戉K看很久,很久?nbsp;
从那以后Q我再也没见q他们夫M人。我不知道男在不在他说的桥下的窝里住着Q也不知道他有没有时间回老家一顺便把我的那封信交l他老婆Q更不知道在那个我连名字都叫不出来的他们的老家Q他的老婆是否安好?nbsp;
只是Q从他们d后,我开始喜Ƣ穿q鞋,因ؓ(f)那感觉很t实?nbsp;
t实刎ͼ我想着明天开始一个h学会(x)q?j)灵搬家?/div>


陈晓 2011-09-11 19:04 发表评论
]]>spy++和游戏修改器http://m.shnenglu.com/cw290746987/archive/2011/08/09/152865.html陈晓陈晓Tue, 09 Aug 2011 07:06:00 GMThttp://m.shnenglu.com/cw290746987/archive/2011/08/09/152865.htmlhttp://m.shnenglu.com/cw290746987/comments/152865.htmlhttp://m.shnenglu.com/cw290746987/archive/2011/08/09/152865.html#Feedback8http://m.shnenglu.com/cw290746987/comments/commentRss/152865.htmlhttp://m.shnenglu.com/cw290746987/services/trackbacks/152865.htmlq几天做?jin)两个东西,spy++ 和游戏修改器?spy++ 是模仿 vs的那个工具spy++ 。游戏修改器Q就是暴力搜索内存,扑ֈ我们兛_(j)的数据,然后q行更改?br />Mq些东西做过之后感觉是都不难,但是在做的时候多会(x)感觉点吃力。唉Q功力不够啊。l修?#8230;…
闲下来无事,记录下它们的q程吧?br />spy++ 分析Q用vs2005做的——Q?br />spy++ 需要拖动一个小图标 然后Ud到别的窗口上Q本H口也可以)(j)Q然后画出窗口的矩ŞQ得到窗口的一些信息?br />拖动的这个小图标Q是一个picture conctrl控g Q属性的typeҎ(gu)icon 也就是加载一个icon图标Q在属性imag里把图标选上?br />l这个控件添加一个类Q在q个c里做这个控件的 图标拖动操作,?lbuttondown的时?把鼠标加载成 图标,把picture里的icon换成I心(j)的?br />当鼠标抬L(fng)时候把鼠标换回来原先的光标Q然后再把picture里的icon换成有小图标的那个图标?br />q里要主?要把鼠标设成全局有效Q要不然的话Q鼠标位|出?jin)这个picture的范围就失效?jin)。函数是 SetCaptureQ)(j)
然后再lbuttonup的时候记?要释放。ReleaseCaptureQ)(j)Q?br />           是q几个图标。吼吹{?br />把这个小图标托到 H口上的时候怎么在窗口上d矩Ş呢? 
当然是先得到q个矩Ş?jin)。我要先得到q个H口的句柄,我们才能得到windowrect 然后才能甅R?br />所以各 下一步就是WindowFromPointQPointQ传一个鼠标点 然后得到q个点的window的hWnd?哈,很强大的函数啊?br />得到H口句柄好办了(jin)。GetWindowRect得到矩Ş区域啊,然后用windowdc 画,用windowdc的原因就是,我们要在整个桌面上都能画?br />q里画这个矩形有个技巧,我们要画出来Q但是当我们不需要这个矩形的时候我们还要给q个颜色d原来的背景色。这里算是整个程序的一个难点,考验d工夫?br />dc讑֤中默认选入的是一个黑色画W,一个白色画P也就是说正常我们ȝ形的话会(x)d黑边白底得矩形,现在我们要透明的底Q然后画的黑边还要可d原先的背景色。有一个函数通过dc调用  dc.SetROP2(R2_NOTXORPEN);参数传这个同或运,q个函数的意思就是,拿你讑֤中的ȝd 去跟背景色运,同或q算?br />比如背景有个颜色?0010100011   你的d颜色是白?也就?11111111111Q比如就q么多位Q?nbsp; 白色因ؓ(f)?55,255,255所以都?  
然后q行同或q算得到的是什么??0010100011Q同或,同则1Q不同则0Q!也就?q是背景Ԍq就做到?jin)画刷透明。然后画W是黑色Q?000000000
跟背景色同或q算的到得是01101011100 q个。然后这个就是真正画到屏q上昄出来的颜艌Ӏ怎么在把q个颜色L呢?大家在用q个黑色的画W画一下,在同或运看看结果是什么?10010100011 看看是不是又变回M(jin)?吼吼。等?x)下面?chung)代码dq里的?br />q个d完事了(jin)。而且H口句柄我们也通过windowfrompoint得到?jin)。有?jin)窗口句柄我们能得到很多东西了(jin)?br />比如说窗口类名GetClassName
H口标题GetWindowText
H口矩ŞGetWindowRect
H口id{信息GetWindowLong
q程id   GetWindowThreadProcessId
q程路径 OpenProcessQ)(j)   GetModuleFileNameExQ)(j)Q?br />{?br />q可以向H口中发消息 sendmessageQ这个比较好玩,可以拿你的spy++d闭别人的H口?br />然后把他讄到窗口上可以了(jin)?br />代码贴一段?br />
void CMyPic::OnTimer(UINT_PTR nIDEvent)
{
    POINT p;
    ::GetCursorPos(
&p);
    hWnd
=::WindowFromPoint(p);
    CRect rect;
    ::GetWindowRect(hWnd,
&rect);
    CWindowDC dc(NULL);
    CPen redpen(PS_SOLID,
3,RGB(255,0,0));
    dc.SelectObject(
&redpen);
    dc.SetROP2(R2_NOTXORPEN);
    dc.Rectangle(rect);
    
//昄回去 向没画一?/span>
    Sleep(300);
    dc.Rectangle(rect);
    ReleaseDC(
&dc);
    CStatic::OnTimer(nIDEvent);
}

q个d在timer里画Q能做到 闪动的巨型。(我选的U色ȝQ你可以把红色跟背景同或算Q跟黑色是一L(fng)Q在Mơ就能画回来背景Ԍ(j)
下面的代码是 写我的spy++的第一늚代码

void CMyspyDlg::UpdataWindowNormal(HANDLE hWnd)
{
 CString str;
 int state=((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck();
 //H口句柄
 if (state==BST_CHECKED)
 {
  str.Format(_T("%p"),hWnd);
 }
 else
 {
  str.Format(_T("%d"),hWnd);
 }
 m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_HANDLE)->SetWindowText(str);
 //H口cd
 TCHAR tempTC[50];
 GetClassName((HWND)hWnd,tempTC,49);
 m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_CLASSNAME)->SetWindowText(tempTC);
 //H口标题
 ZeroMemory(tempTC,100);
 ::GetWindowText((HWND)hWnd,tempTC,49);
 if (*tempTC==_T('\0'))
 {
  m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_TITLE)->SetWindowText(_T("?));
 }
 else
 {
  m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_TITLE)->SetWindowText(tempTC);
 }
 //H口矩Ş
 CRect rect;
 ::GetWindowRect((HWND)hWnd,&rect);
 str.Empty();
 if (state==BST_CHECKED)
 {
  str.Format(_T("x=%x,y=%x,width=%x,hight=%x"),rect.left,rect.top,rect.Width(),rect.Height());
 }
 else
 {
  str.Format(_T("x=%d,y=%d,width=%d,hight=%d"),rect.left,rect.top,rect.Width(),rect.Height());
 }
 m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_WINRECT)->SetWindowText(str);
 //H口id
 str.Empty();
 LONG l=::GetWindowLong((HWND)hWnd,GWL_ID);
 str.Format(_T("%ld"),l);
 m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_WINID)->SetWindowText(str);
 //q程id
 DWORD dword;
 ::GetWindowThreadProcessId((HWND)hWnd,&dword);
 str.Empty();
 if (state==BST_CHECKED)
 { 
  str.Format(_T("%p"),dword);
 }
 else
 {
  str.Format(_T("%d"),dword);
 }
 m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_PROCESSID)->SetWindowText(str);
 //E序路径
 HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dword);
 TCHAR src[200];
 GetModuleFileNameEx(hProcess,NULL,src,199);
  m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_PROSRC)->SetWindowText(src);
}

======================================================================
效果?br />
======================================================================

好了(jin) 下面记录下游戏修改器
其实我用的方法很W的Q但是比较简单。改成功?jin)植物大战僵怸的太阛_{?br />=======================================================================
效果?br />
=======================================================================
q个游戏修改 是d存,D行比较,然后扑ֈ一些跟你输入的值相同的地址Q记录在链表中,然后让这个值变化,在对链表q行搜烦(ch)
如果链表中的地址中的g变化?jin),正确的地址在q链表里Ql变化|之后最后地址定下来为止Q地址定下来之后可以修改了(jin)?br />其中用到得函?先是 快照Q(我在前面做Q务管理器中写到过Q?得到q程id q程名等?br />然后用openprocess打开方式用要可读Q可写,或者获得所有权PROCESS_ALL_ACCESS。得到进E的句柄?br />然后通过q程的句柄读q程中的数据ReadProcessMemory因ؓ(f)虚拟内存共有4gb  ?gb是系l用Q还有前多少KQ不同系l不一P(j)也系l用。所以我们只搜烦(ch)前两gb Q但是前面那些系l的我们忽略了(jin)Q毕竟是数Q不在乎多读那点?jin)?br />ReadProcessMemoryq个函数W一个参数是q程handleQ第二个参数 是基址Q即从那个位|开始读Q是一个地址Q,W三个参数是d的buff W四个是ȝ大小?׃内存|4kb 我们Z(jin)ȝ速度?所以我们每ơ就?kb?dq?kb 攑օbuff?然后 拿我们要扄数值比如是100Q(我们假定我们的数?字节Q,?kb?字节1字节的向后走Q两字节两字节的比较 如果{于100则加入链?br />DWORD dOneGB=1024*1024*1024;//1gb的地址
 DWORD dBase=0;//基址?
 DWORD dOnePage=4*1024;//一个内存页4kb
 BYTE buffer[4*1024];//装一个内存也
 WORD value;
 CString str;
 int pos=0;
 POSITION listpos;
//得到我们H口上输入的?value
 GetDlgItem(IDC_EDIT_INPUT)->GetWindowText(str);
 value=_wtoi(str);
 for (dBase;dBase<dOneGB*2;dBase+=dOnePage)//遍历2gb每次 加一?nbsp; 4kb
 {
  if(ReadProcessMemory(hProcess,(LPCVOID)dBase,buffer,4*1024,NULL))//M个页Q因个读取是不一定成功的所以加ifQ有的内存系l不让你读)(j)
  { 
//q行比较 如果相同加入链表CList m_DataQ?br />   for(DWORD b=0;b<dOnePage-1;b++)
   {
    WORD tempword=*((WORD *)(buffer+b));
    if (tempword==value)
    {
     if (pos==0)//如果是头l点?加在头上Q之后就加在后边
     {
      listpos = m_Data.AddHead(dBase+b);
      pos++;
     }
     else
     {
      listpos = m_Data.InsertAfter(listpos,dBase+b);
     }
    }
   }
  }
 }

q样q个W一ơ搜索就完成?jin)。搜Z(jin)一?{于100的?的地址Q放入了(jin)链表
下次是   改变100?50Q然后再链表中搜索等?50的?br />int dataCount=m_Data.GetCount();
 pp=m_Data.GetHeadPosition();
  for (int i=0;i<dataCount;i++)
  {
   DWORD tempvalue=m_Data.GetNext(pp);
//Ҏ(gu)基址d两个字节的数Q然后跟value比较
   ReadProcessMemory(hProcess,(LPCVOID)tempvalue,&buff,2,NULL);
   if(buff==value)
   {
   if (head)
   {
    li.AddHead(tempvalue);
    head=FALSE;
   }
   else
   {
    li.AddTail(tempvalue);
   }
   }
  }
哈哈Q然后最后就搜到?jin)那个值得地址Q,然后Ҏ(gu)q个地址改变 其中的值就行了(jin)

WriteProcessMemory(hProcess,(LPVOID)address,&newValue,2,NULL);
思\倒是很简单,写的时候M(x)出错误,或是内存错误或是中断的,要耐心(j)调调?br />Z(jin)植物大战讲师的无限阳光,吼吼。go


 


陈晓 2011-08-09 15:06 发表评论
]]>
q程通信——邮槽和命名道http://m.shnenglu.com/cw290746987/archive/2011/08/01/152239.html陈晓陈晓Mon, 01 Aug 2011 14:14:00 GMThttp://m.shnenglu.com/cw290746987/archive/2011/08/01/152239.htmlhttp://m.shnenglu.com/cw290746987/comments/152239.htmlhttp://m.shnenglu.com/cw290746987/archive/2011/08/01/152239.html#Feedback6http://m.shnenglu.com/cw290746987/comments/commentRss/152239.htmlhttp://m.shnenglu.com/cw290746987/services/trackbacks/152239.html今天记录下自己学的邮槽和命名道Q学?fn)过E中遇到炚w题也拿出来分享下。哈  开?br />先说一下大体的概念奥?br />

邮槽定义

邮槽QMailslotQ也UCؓ(f)邮g槽,是Windows 提供的进E间通信的手D,

其提供的是基于不可靠的,邮g槽只支持单向数据传输Q也是服务器只能接收数据,而客L(fng)只能发送数据,

何ؓ(f)服务端?创徏邮槽的那一端就是服务端?br />q有需要提?qing)的一Ҏ(gu)Q客L(fng)在用邮槽发送数据的时候只有当数据的长?< 425 字节Ӟ

才可以被q播l多个服务器Q如果消息的长度 > 425 字节的话Q那么在q种情Ş下,邮槽是不支持q播通信的?br />q是我看到的邮槽的简要说明吧?br />先说下邮槽的使用q程吧。然后再分析函数Q在贴代码。非常简单哦
服务端:(x)                                        客户端:(x)
首先创徏邮槽CreateMailslot               打开Ҏ(gu)CreateFile
d数据 ReadFile                           写入数据WriteFile
完事?jin),只有q四个函数。也很容易理解?客户端写入数?服务端读取数据?br />CreateMailslot(_T("\\\\.\\mailslot\\chenxiao"),0, MAILSLOT_WAIT_FOREVER,NULL);
W一个参数是个固定格?a href="file://\\.\\mailslot\\name">\\.\\mailslot\\name   点代表本机。mailslot是硬~码 不能变,name可以自己起个邮槽的名字?#8216;\’攑օ字符串中要用转义字符\
所以就写成?\\\\.\\mailslot\\chenxiao"
W二个参数To specify that the message can be of any size, set this value to zero. 讄?
W三个参Cؓ(f)?jin)下面的d操作应该{待的时?MAILSLOT_WAIT_FOREVER 传这个代表参C表永久等待?br />最后一个参数安全属?嘎嘎 null
ReadFile(hMailSlot,pData,sizeof(TCHAR)*80,&dByteRead,NULL);
q几个参数很单了(jin)。第一个参数就是创建邮槽返回来的句?W二个参C个[out]buffer用来接收从邮槽中d来的东东。第三个参数是d多少个字节?br />W四个参数基本没用,是一个[out]的LPDWord  很蛋疼只能DWORD dByteRead; 然后传个他的地址?br />因ؓ(f)msdn上说?jin)If lpOverlapped is NULL, lpNumberOfBytesRead cannot be NULLQ?br />lpoverlapped是我们的最后一个参敎ͼq个参数可以讄同步和异步,如果文g打开模式是FILE_FLAG_OVERLAPPEDq个的话Q我们这个就不可以是NULL
q个同步异步问题我在下面的命名管道中在说。这里就先过厅R这个参数设成NULL?br />客户端函?br />CreateFile(_T("\\\\.\\mailslot\\chenxiao"),GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);
q几个参C很容易理解了(jin)。第一个参数要和创建邮槽的时候的参数一栗如果要q程通信的话可以?#8216;.’讄成服务器 L?或者在一个区域内q播‘*’
但是我用两个机器实验?jin),没有成功Q目前我只能用邮槽在本地一个机器上通信。。。尴。。有知道怎么在两个机器上通信的,要给我留a教教我哦?br />后几个参数根据参数名大家可以猜个差不多?jin),我就不说了(jin)。吼吹{?br />WriteFile(hMailSlot,str,sizeof(TCHAR)*80,&dByteWrite,NULL);q个函数 ?readfile差不?是向邮槽中写入数据用的?br />W二个参数是要写入的内容Q第三个是大(以字节ؓ(f)单位Q?
好了(jin)q几个函数都说完?jin)。脓(chung)上小代码Q就清晰?jin)?/p>

//服务器端 我用的c++写的?/span>
#include <iostream>
#include 
<Windows.h>
#include 
<tchar.h>
using namespace std;


int main()
{
    HANDLE hMailSlot
=CreateMailslot(_T("\\\\.\\mailslot\\chenxiao"),0,
        MAILSLOT_WAIT_FOREVER,NULL);
     TCHAR pData[
80];
     ZeroMemory(pData,
sizeof(TCHAR)*80);
     DWORD dByteRead;
     
while(1)
   
{
         BOOL b
=ReadFile(hMailSlot,pData,sizeof(TCHAR)*80,&dByteRead,NULL);
          wprintf_s(_T(
"%s\n"),pData);
     }

    
    system(
"pause");
    
return 0;
}
//客户端我在mfc中写的?/span>
void CclientDlg::OnBnClickedButtonSend()
{
     TCHAR str[
80];
    ZeroMemory(str,
sizeof(TCHAR)*80);
     GetDlgItem(IDC_EDIT_INPUT)
->GetWindowText(str,70);
     DWORD dByteWrite;
     HANDLE hMailSlot
=CreateFile(_T("\\\\.\\mailslot\\chenxiao"),GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS,
         FILE_ATTRIBUTE_NORMAL,NULL);
    
if (hMailSlot==INVALID_HANDLE_VALUE)
    
{
        MessageBox(_T(
"createfilep|Q请打开服务?/span>"));
        
return ;
    }

     BOOL b
=WriteFile(hMailSlot,str,sizeof(TCHAR)*80,&dByteWrite,NULL);
     GetDlgItem(IDC_EDIT_INPUT)
->SetWindowText(_T(""));
     CloseHandle(hMailSlot);
}


q就是运行结果啦。这个东西没啥大用。就是学?fn)一下而已。以后万一用到也能弄弄?br />
下面我说?strong style="background-color: #ff0000">命名道。这个东西坑?jin)我一下午。。?br />邮槽建立的是无连接的通信。。那么命名管?是有链接的可靠的通信?jin)。他跟邮槽挺怼的。但是比邮槽好很多?br />同上面。我_一些概忉|的东西?/p>

命名道是通过|络来完成进E之间的通信的,命名道依赖于底层网l接口,

其中包括?DNS 服务QTCP/IP 协议{等机制Q但是其屏蔽?jin)底层的|络协议l节Q?/p>

对于匿名道而言Q其只能实现在父q程和子q程之间q行通信Q而对于命名管道而言Q?/p>

其不仅可以在本地机器上实C个进E之间的通信Q还可以跨越|络实现两个q程之间的通信?/strong>

命名道使用?Windows 安全机制Q因而命名管道的服务端可以控制哪些客h权与其徏立连接,

而哪些客L(fng)是不能够与这个命名管道徏立连接的?/p>

利用命名道机制实现不同机器上的q程之间怺q行通信Ӟ

可以命名管道作ZU网l编E方案时Q也是看做?Socket 可以了(jin)Q?/p>

它实际上是徏立了(jin)一个客h/服务器通信体系Qƈ在其中可靠的传输数据?/p>

命名道的通信是以q接的方式来q行的,

服务器创Z个命名管道对象,然后在此对象上等待连接请求,

一旦客戯接过来,则两者都可以通过命名道L者写数据?/strong>          

命名道提供?jin)两U通信模式Q字节模式和消息模式?

在字节模式下Q数据以一个连l的字节的形式在客h和服务器之间动Q?

而在消息模式下,客户机和服务器则通过一pd的不q箋的数据单位,q行数据的收发,

每次在管道上发出一个消息后Q它必须作ؓ(f)一个完整的消息d?br />

我相信很多h看了(jin)几句p到这里来?jin)。。概忉|的东西 实太不好玩?jin)。我也不q。。哈?br />介绍命名道需要的函数?br />服务器端

CreateNamedPipe 创徏命名道

 ConnectNamedPip  q接
ReadFile    ?br />WriteFile  ?/span>

客户?/span>

WaitNamedPipe 查看命名道
CreateFile  打开命名道
WriteFile ReadFile  ?nbsp;  ?br />

p些东西,今天׃不仔l看msdn 写程序写蒙了(jin)。。。等?x)我在说啊。大家要注意哦?br />CreateNamedPipe(_T("\\\\.\\pipe\\chenxiao"),PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,PIPE_TYPE_BYTE,1,1024,1024,2000,NULL);
很多参数啊!不怕不?慢慢?br />W一个我略过?jin)哦。第二个大家在msdn上可以看到有
PIPE_ACCESS_DUPLEX   d双向
PIPE_ACCESS_INBOUND   数据只能从客L(fng)到服务端
PIPE_ACCESS_OUTBOUND  和上面那个相?br />q个参数我们讄?W一个。然而通过msdn大家可以看到q个参数可以附加 flag  我们附加FILE_FLAG_OVERLAPPED q个?br />MSDN那一大堆英文我也瞅不太明白,大至意思就是这个呢 用了(jin)q个参数 E序操作读,写,q接{操作,可以立马q回。比如说M个大文g?/p>

你把q个文g从头d?需要很长时间。这L(fng)话你的readfile函数׃?x)反?nbsp; ׃(x)d在那里一直读。这样很不好Q所以有?jin)这个参数。这个参数就是你的??{待函数立马q回Q这个就属于E序的异步,q个d数和ȝ序一h行?br />下一个参数就是以字节还是消息方式发送文?d文g。我们采用字节流方式PIPE_TYPE_BYTE?br />下一个参数是最多可以创建几个命名管?比如我们讄?Q就是可以创?个这L(fng)道。我们这里设|成1Q我们只用一个管道做演示p。然后是分配的输?输出 ~冲区大?Q就cM创徏U程时分配栈I间大小一栗然后是一个超时时间设|?q个讄?可以。最后一个NULL安全属?/p>

ConnectNamedPipe服务端的q接道函数q个函数两个参数W一个参数句柄,W二个参C个结构体对象
q个l构体呢 里面有一个事件句柄。刚才上边由于设|了(jin)异步Q所以你要有一个标志着ȝ束的标志Q这个标志就用的q个事g。创个事件要讄成手动的Q初始ؓ(f)无信受?/p>

q样服务端的写完了(jin)?br />然后再说一下客L(fng)的函?br />WaitNamedPipe(_T("\\\\.\\pipe\\chenxiao"),0);
q个函数呢就属于一个查看函敎ͼ看看有没有叫chenxiao的命名管?br />大家不要认ؓ(f)q个函数可以打开命名道 或者连接管?br />大家从msdn上可以看到这句话If the function succeeds,the process should use the CreateFile function to open a handle to the named pipe
今天我由于没看到q句话苦苦弄?jin)一个下午也没连上管?555555555
在客L(fng)可以用waitnamedpipe(g)查下有没有这个管?然后再createfile打开它?br />哦了(jin) 搞定?jin)。搞上我的代码瞅瞅效果?/p>

 

//服务器端的代?nbsp; MFC写的

void CPipeServerDlg::OnBnClickedButtonCreate()
{
    m_hNP
=CreateNamedPipe(_T("\\\\.\\pipe\\chenxiao"),
        PIPE_ACCESS_DUPLEX
|FILE_FLAG_OVERLAPPED,
        PIPE_TYPE_BYTE,
1,1024,1024,0,NULL);
    
if (m_hNP==INVALID_HANDLE_VALUE)
    
{
        MessageBox(_T(
"创徏道p|"));
    }

    
else
    
{
        MessageBox(_T(
"创徏道成功"));
    }

    
//q接-----------------------------
    
    OVERLAPPED op;
    ZeroMemory(
&op,sizeof(OVERLAPPED));
    op.hEvent
=CreateEvent(NULL,TRUE,FALSE,NULL);
    BOOL b
=ConnectNamedPipe(m_hNP,&op);
    
if (WaitForSingleObject(op.hEvent,INFINITE)==0)
    
{
        MessageBox(_T(
"connect成功 haha"));
    }

    
else
    
{
        MessageBox(_T(
"create fail"));
    }

}


void CPipeServerDlg::OnBnClickedButtonWrite()
{

    TCHAR buff[
100]=_T("来自服务器的信息");
    DWORD d;
    WriteFile(m_hNP,buff,
200,&d,NULL);
}


void CPipeServerDlg::OnBnClickedButtonRead()
{
    TCHAR buff[
100];
    ZeroMemory(buff,
200);
    DWORD d;
    ReadFile(m_hNP,buff,
200,&d,NULL);
    MessageBox(buff);
}

 

//客户端的代码 MFC写的


void CPipeClientDlg::OnBnClickedButtonOpenpipe()
{
    BOOL b
=WaitNamedPipe(_T("\\\\.\\pipe\\chenxiao"),0);
    
//BOOL b=1;
    m_hFile = CreateFile(_T("\\\\.\\pipe\\chenxiao"), 
        GENERIC_READ 
| GENERIC_WRITE,
        
0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    
if (!b||m_hFile==INVALID_HANDLE_VALUE)
    
{
        MessageBox(_T(
"q接p|"));
    }

    
else
    
{
        MessageBox(_T(
"q接成功"));
    }

}


void CPipeClientDlg::OnBnClickedButtonRecieve()
{
    TCHAR buff[
100];
    ZeroMemory(buff,
200);
    DWORD d;
    ReadFile(m_hFile,buff,
200,&d,NULL);
    MessageBox(buff);
}


void CPipeClientDlg::OnBnClickedButtonSend()
{
    TCHAR buff[
100]=_T("client's message");
    DWORD d;
    WriteFile(m_hFile,buff,
200,&d,NULL);
}

下图E序q行效果?img border="0" alt="" src="http://m.shnenglu.com/images/cppblog_com/cw290746987/命名道.png" width="1038" longdesc="" height="396" />

哇卡卡阿?br />













 



陈晓 2011-08-01 22:14 发表评论
]]>
q程通信——剪贴板http://m.shnenglu.com/cw290746987/archive/2011/07/31/152157.html陈晓陈晓Sun, 31 Jul 2011 09:11:00 GMThttp://m.shnenglu.com/cw290746987/archive/2011/07/31/152157.htmlhttp://m.shnenglu.com/cw290746987/comments/152157.htmlhttp://m.shnenglu.com/cw290746987/archive/2011/07/31/152157.html#Feedback0http://m.shnenglu.com/cw290746987/comments/commentRss/152157.htmlhttp://m.shnenglu.com/cw290746987/services/trackbacks/152157.html׃在启动一个进E后Q操作系l会(x)l这个进E分?4GB 的私有地址I间Q至于ؓ(f)何有 4GB q么大,

那得考虑q程的私有地址I间和实际物理内存地址I间之间的映以?qing)页交换{等l节问题?jin),q里不予讨论Q?/p>

既然操作pȝl每一个进E分配的是私有地址I间Q自?dng)q段地址I间也只有这个进E自己才能访问了(jin)Q?br />既然q段U有地址I间只能pE本w访问,那也p明别的进E是不能够随意的讉Kq个q程的地址I间的,

而上面又说Q意两个进E之间是q能够互相访问对方的U有地址I间的,都不能访问了(jin)Q那q通信个屁?Q?/p>

自然上面的访问对方进E的U有地址I间是行不通了(jin)Q那应该q有其他办法?Q!Q?/p>

如果我在物理内存中划分出一块内存,q一块内存不ZQ何的q程所U有Q但是Q何的q程又都可以讉Kq块内存Q?/p>

那么 q程 A 可以往q块内存中存放数?Data Q然?q程 B 也是可以讉Kq块内存的,从?q程 B 可以访问到数据 Data ?jin)?/p>

q样不就实现?q程 A ?q程 B 之间的通信?Q!Q?/p>

而上面的q种思\是剪脓(chung)板了(jin)?/p>

当然解决q程间通信q有好几U思\Q本文暂只介l利用剪贴板来实现进E间的通信?br />前面q段话是我抄q来的,呵呵Q自己写不了(jin)q种书面语?br />我写一下我对剪贴板的用,我也是新学的Q有不对的地方还请大家指炏V?br />
向剪贴板中写入数?br />打开剪脓(chung)?OpenClipboard
清空剪脓(chung)?EmptyClipboard
讄剪脓(chung)板数据SetClipboardData
关闭剪脓(chung)板CloseClipboard

从剪贴板d数据
打开剪脓(chung)?OpenClipboard
判断数据cdIsClipboardFormatAvailable
得到剪脓(chung)板数据GetClipboardData
关闭剪脓(chung)板CloseClipboard

我在说下具体的函数怎么?br />Openclipboard大家在msdn上可以看?仅有一个参?em>hWndNewOwnerQ?br />q个参数表明那个H口拥有剪脓(chung)板的使用?已在此窗口中打开Q别的窗口中调用openclipboard׃(x)p|
q个参数可以讄成null。If this parameter is NULL, the open clipboard is associated with the current task
呵呵Q这个设成null之后 在后边的 setclipboarddata ׃能采用gq发送了(jin)。因?#8230;…{会(x)说gq发送就?x)知道?jin)。(q是我试验得出的l论Q应该没问题Q?br />q个参数我们暂且设ؓ(f)H口句柄 m_hWnd(我用的MFC~的Q?br />EmptyClipboardq个函数没什么说的了(jin)。就是清I剪贴板的数?q有是The function then assigns ownership of the clipboard to the window that currently has the clipboard open.
SetClipboardData( UINT uFormat, HANDLE hMem);
有两个参数第一个参数是数据cd 我们讄成CF_UNICODETEXT?br />W二个参数是the hMem parameter identifies a memory object, the object must have been allocated using the function with the GMEM_MOVEABLE flag.
q句话得意思就?hmem是块内存对象的句?q块内存要是GMEM_MOVEABLE 型的。这又要引进一个申请内存的函数。^常我们用的malloc new {都?br />在自qq程中申L(fng)_(d)如果用他?我们的通信也就通不成了(jin)。所以我们要甌个全局的内存空?br />GlobalAlloc(GMEM_MOVEABLE,dwBytes)Q第一个参数就是可Ud的意思(当别人申请一块大I间的时?比如我们甌的空间比较散乱占用了(jin)一部分I间 别hq请不?jin)一整块大的I间?jin)。这h们的I间如果是可Ud的,׃(x)被移动的凝聚一些,别h有地方甌大的I间?jin),U色是我们申L(fng)凌ؕ的空_(d)l色是又想申L(fng)一大块Q?img border="0" alt="" src="http://m.shnenglu.com/images/cppblog_com/cw290746987/内存I间.png" width="224" longdesc="" height="149" />

q个我不在这里多Ԍ内存理我懂的也不太多。不懂的可以找找内存理斚w的书?W二个参数就是空间大?br />
q样我们完成?jin)设|剪贴板数据 Q然后我们关闭剪贴板p?jin)?br />d单一些?br />::OpenClipboard(m_hWnd)
IsClipboardFormatAvailable(CF_UNICODETEXT)//判断剪脓(chung)板内数据cd
HANDLE hClip=::GetClipboardData(CF_UNICODETEXT)//得到剪脓(chung)板的句柄
然后是使用里面的数据了(jin)。这里要注意Q一定要l数据上?Q就是说我们在用数据的q个旉内,别h不准Ud我们的内存。这个大家能理解吧?br />TCHAR * p=(TCHAR *)GlobalLock(hClip);//强制装换成我们的宽字W?nbsp; 上锁
MessageBox(p);输出卛_
  GlobalUnlock(hClip);  解锁
  ::CloseClipboard();
q就完成?jin),我?chung)一D代码上来哦

//q个是写入剪贴板
    if(!::OpenClipboard(m_hWnd))
    
{
        MessageBox(_T(
"打开剪切板失?/span>"));
    }

    ::EmptyClipboard();
      CString str
=_T("hahaaha");
      HGLOBAL  hG
=GlobalAlloc(GMEM_MOVEABLE,sizeof(_T("hahaaha"))+2);
      _tcscpy_s((wchar_t 
*)GlobalLock(hG),sizeof(_T("hahaaha"))/2+1,str);
      GlobalUnlock(hG);
    ::SetClipboardData(CF_UNICODETEXT,hG);
    ::C
//q个是从剪脓(chung)板中d数据
if(!::OpenClipboard(m_hWnd))
         
{
             MessageBox(_T(
"打开剪切板失?/span>"));
            
return ;
         }

        
if (::IsClipboardFormatAvailable(CF_UNICODETEXT))
    
{

        HANDLE hClip
=::GetClipboardData(CF_UNICODETEXT);
        TCHAR 
* p=(TCHAR *)GlobalLock(hClip);
        MessageBox(p);
        GlobalUnlock(hClip);
        ::CloseClipboard();
    }

    
else
    
{
        MessageBox(_T(
"剪脓(chung)板的内容不是unicode"));
    }


然后最后我在说说gq发送setclipboarddata 的第二个参数传ؓ(f)null ׃ؓ(f)延迟发?br />延迟发送就是一开始点写入剪脓(chung)板的时候不写入Q然后另一个进E想要得到剪贴板里的信息的时候也是在getclipboarddata?br />pȝ?x)发个消息给我们以前的那个窗?q记得openclipboard传的那个m_hWnd?jin)吧Q就是给q个H口发个消息WM_RENDERFORMAT
然后你在q个消息响应函数中进行把数据写入剪脓(chung)ѝ?br />q有一U情况就是你在想_脓(chung)的时?nbsp; 你的原先写入的那个程序已l关闭了(jin)Q这L(fng)话你帖不了(jin)?jin)?q样 q有一个消?br />如果你选择?jin)gq发?然后关闭应用E序的话Q就?x)响应一个WM_RENDERALLFORMATS消息 那么你在q个响应函数中把你要写入剪脓(chung)板得数据
写入 可以避免这U情况了(jin)?br />?累死我了(jin)Q可下写完了(jin)。。。?br />





陈晓 2011-07-31 17:11 发表评论
]]>
快照、用q程快照Q和模块快照做个单的d理?/title><link>http://m.shnenglu.com/cw290746987/archive/2011/07/31/152138.html</link><dc:creator>陈晓</dc:creator><author>陈晓</author><pubDate>Sun, 31 Jul 2011 06:34:00 GMT</pubDate><guid>http://m.shnenglu.com/cw290746987/archive/2011/07/31/152138.html</guid><wfw:comment>http://m.shnenglu.com/cw290746987/comments/152138.html</wfw:comment><comments>http://m.shnenglu.com/cw290746987/archive/2011/07/31/152138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/cw290746987/comments/commentRss/152138.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cw290746987/services/trackbacks/152138.html</trackback:ping><description><![CDATA[<div><div>得到pȝ中的q程信息</div><div>CreateToolhelp32Snapshot 快照  </div><div>此函数能得到pȝ中的所有进E?所有模?信息{?/div><div>然后用Process32First得到快照W一个节点信息(快照得到的东西相当于链表Q?/div><div>用此可以实现一个windowsd理器?br />用mFc写的?br />//把ListCtrl的表头做出来<br /><div><div>CListCtrl * m_pListCtrl=new CListCtrl;//m_pListCtrl要类的全局变量?nbsp;</div><div><span style="white-space:pre"> </span>m_pListCtrl->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT</div><div><span style="white-space:pre"> </span>,CRect(50,50,590,350),this,IDC_LIST1);</div><div><span style="white-space:pre"> </span>m_pListCtrl->SetExtendedStyle(m_pListCtrl->GetExtendedStyle()|</div><div><span style="white-space:pre"> </span>LVS_EX_HEADERDRAGDROP|LVS_EX_FULLROWSELECT|</div><div><span style="white-space:pre"> </span>LVS_EX_TWOCLICKACTIVATE|LVS_EX_UNDERLINECOLD);</div><div><span style="white-space:pre"> </span>m_pListCtrl->InsertColumn(0,_T("q程?),LVCFMT_LEFT,120);</div><div><span style="white-space:pre"> </span>m_pListCtrl->InsertColumn(1,_T("q程ID"),LVCFMT_LEFT,70);</div><div><span style="white-space:pre"> </span>m_pListCtrl->InsertColumn(2,_T("U程数量"),LVCFMT_LEFT,70);</div><div><span style="white-space:pre"> </span>m_pListCtrl->InsertColumn(3,_T("路径"),LVCFMT_LEFT,340);<br /><br />//d所有运行中的进E?和进E名?加入?ListCtrl?br />   m_pListCtrl->DeleteAllItems();//先清I里面的所有item 一开始是没有的,但是也要写一下?div><div><span style="white-space:pre"> </span>HANDLE hSnapProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//创徏q程快照</div><div><span style="white-space:pre"> </span>HANDLE hSnapModule;</div><div><span style="white-space:pre"> </span>PROCESSENTRY32 pe;</div><div><span style="white-space:pre"> </span>MODULEENTRY32  me;</div><div><span style="white-space:pre"> </span>ZeroMemory(&me,sizeof(MODULEENTRY32));</div><div><span style="white-space:pre"> </span>ZeroMemory(&pe,sizeof(PROCESSENTRY32));</div><div><span style="white-space:pre"> </span>me.dwSize=sizeof(MODULEENTRY32);</div><div><span style="white-space:pre"> </span>pe.dwSize=sizeof(PROCESSENTRY32);</div><div><span style="white-space:pre"> </span>int pos=0;</div><div><span style="white-space:pre"> </span>Process32First(hSnapProcess,&pe);//从线E快照中dW一个进E信?/div><div><span style="white-space:pre"> </span>CString strTemp;</div><div><span style="white-space:pre"> </span>do </div><div><span style="white-space:pre"> </span>{</div><div><span style="white-space:pre"> </span>hSnapModule=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pe.th32ProcessID);   //Ҏ(gu)q程id创徏模块快照</div><div><span style="white-space:pre"> </span>m_pListCtrl->InsertItem(pos,_T(""));     //插入一个item</div><div><span style="white-space:pre"> </span>Module32First(hSnapModule,&me);        //d模块中的信息  只有一个模块。因为是Ҏ(gu)具体q程创徏的模块快?/div><div><span style="white-space:pre"> </span>m_pListCtrl->SetItemText(pos,0,pe.szExeFile);   //讄的进E名</div><div><span style="white-space:pre"> </span>strTemp.Format(_T("%d"),pe.th32ProcessID);</div><div><span style="white-space:pre"> </span>m_pListCtrl->SetItemText(pos,1,strTemp);   //q程id</div><div><span style="white-space:pre"> </span>strTemp.Format(_T("%d"),pe.cntThreads);</div><div><span style="white-space:pre"> </span>m_pListCtrl->SetItemText(pos,2,strTemp);    //U程?/div><div><span style="white-space:pre"> </span>m_pListCtrl->SetItemText(pos,3,me.szExePath);   //q程exe路径</div><div><span style="white-space:pre"> </span>} while (Process32Next(hSnapProcess,&pe));//M一个进E?/div><div><span style="white-space:pre"><br /> 在写个关闭进E?的按?/span></div><div><span style="white-space: pre; "><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">void</span><span style="color: #000000; "> CProcessManagerDlg::OnBnClickedButtonClose()<br />{<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> iMark</span><span style="color: #000000; ">=</span><span style="color: #000000; ">m_pListCtrl</span><span style="color: #000000; ">-></span><span style="color: #000000; ">GetSelectionMark();<br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">iMark)<br />    {<br />        CString  str</span><span style="color: #000000; ">=</span><span style="color: #000000; ">m_pListCtrl</span><span style="color: #000000; ">-></span><span style="color: #000000; ">GetItemText(iMark,</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />        HANDLE hProcess</span><span style="color: #000000; ">=</span><span style="color: #000000; ">OpenProcess(PROCESS_ALL_ACCESS,FALSE,_wtoi(str));<br />        DWORD dExitCode;<br />        GetExitCodeProcess(hProcess,</span><span style="color: #000000; ">&</span><span style="color: #000000; ">dExitCode);<br />        TerminateProcess(hProcess,dExitCode);<br />        m_pListCtrl</span><span style="color: #000000; ">-></span><span style="color: #000000; ">DeleteItem(iMark);<br />        str.Format(_T(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">),</span><span style="color: #000000; ">--</span><span style="color: #000000; ">count);<br />        GetDlgItem(IDC_STATIC_COUNT)</span><span style="color: #000000; ">-></span><span style="color: #000000; ">SetWindowText(str);<br />    }<br />    </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />    {<br />        MessageBox(_T(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">没有选中q程</span><span style="color: #000000; ">"</span><span style="color: #000000; ">));<br />    }<br /><br />}</span></div><br />  嘿嘿Q看看这个图 q是挺好的?br /><br />   <br /><div><img src="http://m.shnenglu.com/images/cppblog_com/cw290746987/q程理?jpg" width="781" height="447" alt="" /></div></span></div></div><br /><br /><br /></div></div></div></div><img src ="http://m.shnenglu.com/cw290746987/aggbug/152138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cw290746987/" target="_blank">陈晓</a> 2011-07-31 14:34 <a href="http://m.shnenglu.com/cw290746987/archive/2011/07/31/152138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线E、事件eventhttp://m.shnenglu.com/cw290746987/archive/2011/07/30/152089.html陈晓陈晓Sat, 30 Jul 2011 06:32:00 GMThttp://m.shnenglu.com/cw290746987/archive/2011/07/30/152089.htmlhttp://m.shnenglu.com/cw290746987/comments/152089.htmlhttp://m.shnenglu.com/cw290746987/archive/2011/07/30/152089.html#Feedback0http://m.shnenglu.com/cw290746987/comments/commentRss/152089.htmlhttp://m.shnenglu.com/cw290746987/services/trackbacks/152089.html

是自己随便做的W记Q可能对不v观众?jin)。只是记录了(jin)用的函数。具体用方法还是看下msdn
创徏CreateThread 参见msdn  要记得closehandle

mfc 创徏U程 afxbeginthread

创徏事g createevent

{待函数WaitForSingleObject   自动事g有信?l过{待函数变成无信受?/p>

U程退出,写在timer?隔一D|间一(g)。可以用多等?WaitForMultipleObjectsq回WAIT_OBJECT_0时则为所有事仉为有信号状态?/p>


U程同步 

临界区法

定义临界区CRITICAL_SECTION m_critical;

InitializeCriticalSectionQ?amp;m_criticalQ?初始化(f)界区

EnterCriticalSection(&(p->m_critical));q入

LeaveCriticalSection(&(p->m_critical))Q离开

DeleteCriticalSectionQ?amp;m_criticalQ释?/p>

事g?/p>

定义自动变换事gm_hEvent

WaitForSingleObject(m_hEvent,INFINITE);

//被保护的代码

SetEvent(p->m_hEvent);

互斥对象?/p>

Ig互斥对象 createmutex

{待函数WaitForSingleObject

//被保护的代码

释放互斥对象使用权ReleaseMutex

信号?nbsp; semaphore内核对象
CreateSemaphoreQ安全性,初始话信号量Q最大信号量QnameQ?br />l过wait函数信号量减?br />releaseSemaphoreQ句柄,信号增加量,【out】前个信号量Q?/p>

 

 

利用事g判断应用E序不能q用两个
createevent的最后一个参数name 写一?#8220;唯一?#8221;
然后再创建的q个旉 ?#8220;唯一?#8221;q个名字  ׃(x)出错
用getlasterror 能得到ERROR_ALREADY_EXISTS  
整个q程应该在app 的init中进?/p>



陈晓 2011-07-30 14:32 发表评论
]]>
ȝ的几个排序算?/title><link>http://m.shnenglu.com/cw290746987/archive/2011/07/30/152088.html</link><dc:creator>陈晓</dc:creator><author>陈晓</author><pubDate>Sat, 30 Jul 2011 06:29:00 GMT</pubDate><guid>http://m.shnenglu.com/cw290746987/archive/2011/07/30/152088.html</guid><wfw:comment>http://m.shnenglu.com/cw290746987/comments/152088.html</wfw:comment><comments>http://m.shnenglu.com/cw290746987/archive/2011/07/30/152088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/cw290746987/comments/commentRss/152088.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cw290746987/services/trackbacks/152088.html</trackback:ping><description><![CDATA[<p>快速排序:(x)<br />思想 一个标记数Q取数组最后一个数Q?nbsp; 左边放比他小的所有数 双放比它都大的?br />q样分成的两个数l?在进?N一个数作ؓ(f)标记C为标记分割数l?br />一直到分不?jin)?f)?nbsp; 自然排好了(jin)l?nbsp;  用具体数字分析一?br />一个数lchar data[9]={2,5,8,3,7,6,1,9,4};<br />分开q个数组 看好?jin)怎么把比4的数都攑ֈ它前?br /> int biaoji=data[8];//最后一个数<br /> int weizhi=data[j];//q个一个位|数 一开始把它放在最前边 j?+<br /> data[i];//q个是用来遍历数l的。i?+<br />forQint i=0;i<8;i++Q?/因ؓ(f)最后一个数是标?所以只要对?个数q行遍历p<br />{ <br /> ifQdata[i]<biaojiQ?br /> {<br />   交换data[i]和weizhi<br />   位置的j++ 位置向后C位(q个位置意味着比标记小的数都放C|的左边边)(j) <br /> }<br />}<br />在分开之后 我们要把我们的标讎ͼ也就是最后一个数Q和我们的位|数 换一?br />q样做C(jin)q样的事 把{2,5,8,3,7,6,1,9,4} 换成?jin){2Q?Q?Q?Q?Q?Q?Q?}<br />好了(jin) 上代?在看看代码相?都?x)?jin)?br />q是我用c++实现的代?哈哈写完?jin)感觉很爽?/p> <p>#include <iostream><br />using namespace std;<br />//得到分割?把小于最后一个数的数攑֜i前边<br />//iData 是数l{2,5,8,3,7,6,1,9,4} iBegin是开始的索引0  iEnd是结束的索引8<br />int getCutpoint(int * iData,int iBegin,int iEnd)<br />{<br />  int iCut=iData[iEnd];<br />  int i=iBegin;<br /> int temp;<br />  for(int j=iBegin;j<iEnd;j++)<br />  {<br />   //如果前面的比最后一个iCut的话,那么?br />   //iData[i]和iData[j]?br />   if (iData[j]<=iCut)<br />   {<br />    temp=iData[i];<br />    iData[i]=iData[j];<br />    iData[j]=temp; <br />    i++;<br />  }<br />  }<br />  //交换最后一个与i处也是cut?br />  iData[iEnd]=iData[i];<br />  iData[i]=iCut;<br /> return i;//q回分割的烦(ch)?br />}<br />void fastSortCallBack(int * iData,int iBegin,int iEnd)<br />{<br /> if (iBegin>=iEnd)<br /> {<br />  return;<br /> }<br /> int i=getCutpoint(iData,iBegin,iEnd);<br /> //回调l箋getcutpoint左部?br /> fastSortCallBack(iData,iBegin,i-1);<br /> //回调l箋getcutpoint右部?br /> fastSortCallBack(iData,i+1,iEnd);<br /> return ;<br />}<br />void fastSort(int * iData,int iLength)<br />{<br /> fastSortCallBack(iData,0,iLength-1);<br />}<br />int main()<br />{<br /> int d[9]={2,5,8,3,7,6,1,9,4};<br /> fastSort(d,9);<br /> for (int i=0;i<9;i++)<br /> {<br />  cout<<d[i]<<" ";<br /> }<br /> system("pause");<br /> return 0;<br />}</p> <p> </p> <p><br />选择排序Q?br />选择排序和冒泡排序思\上有一点相|都是先确定最元素,再确定第二笑元素Q最后确定最大元素。这个方法比较简单,他的主要程如下Q?br />1.加入一个数lA = {5,3,6,2,4,7}Q我们对他进行排?br />2.定最的元素攑֜A[0]位置Q我们怎么定呢,首先默认最元素ؓ(f)5,他的索引?,然后用它?比较Q比他打Q则认ؓ(f)最元素ؓ(f)3,他的索引?Q然后用3?比,发现比他,最元素还?Q然后跟2比,最元素变成了(jin)2Q烦(ch)引ؓ(f)3Q然后跟4比,?比。当比较l束之后Q最元素也埃落定?jin)。就?Q烦(ch)引ؓ(f)3Q然后我们把他放在A[0]处。ؓ(f)?jin)A[0]原有数据部丢失,我们使A[0](要放的位|? 与A[3]Q最数据的位置Q交换。这样就不可以了(jin)吗?<br />3.然后我们在来扄二小元素Q放在A[1]Q第三小元素Q放在A[2]。。当L完毕Q我们排序也q束了(jin)?br />4.不过Q在扄时候要注意其实位置Q不能在找A[2]的时候,q用A[2]的数据跟已经排好的A[0],A[1]比,一定要跟还没有定位置的元素比。还有一个技巧就是我们不能每ơ都存元素值和索引Q我们只存烦(ch)引就可以?jin),通过索引p扑ֈ元素?jin)。呵c(din)?br />5.他和冒(chng)的相似和区别Q冒泡和他最大的区别是他发现比他就交换Q把的放上面,而选择是选择到最的在直接放在确定的位置。选择也是E_的排?nbsp; Q这个还是很好实现的?/p> <p>void SelectSort(int* pnData, int nLen)<br />{<br />    //i从[0,nLen-1)开始选择Q确定第i个元?br />    for (int i = 0; i < nLen - 1; ++i)<br />    {<br />        int nIndex = i;<br />        //遍历剩余数据Q选择出当前最的数据<br />        for (int j = i + 1; j < nLen; ++j)<br />        {<br />            if (pnData[j] < pnData[nIndex])    <br />            {<br />                nIndex = j;<br />            }<br />        }<br />        //如果当前最数据烦(ch)引不是iQ也是说排在i位置的数据在nIndex?br />        if (nIndex != i)        <br />        {<br />            //交换数据Q确定i位置的数据?br />            int nTemp = pnData[i];<br />            pnData[i] = pnData[nIndex];<br />            pnData[nIndex] = nTemp;<br />        }<br />    }<br />}</p> <p> </p> <p><br />插入排序Q?br />思想Q从W二个元素开始向后遍历,然后跟前面比较,如果比前边的元素则向前插入<br />由data[1]和data[0]比较 如果data[1]<data[0]则data[0]后移一?然后data[1]插入到data[0]位置<br />当然?jin),在data[0]后移的时候要用temp 记录data[1]的?br />q样l箋下去…… <br />ifQdata[i]<(data i 前边的元?Q?br />{<br />  data i 前边的元素就后移<br />}<br />最后把data[i]攑ֈ该插入的地方?下面献上一点点代码 其中主要不好弄的是在头部<br />比如{3Q?Q?,6,2,1} q个2 ?1 向前插入的话2 比第一个数3q要?所以他下一步就要去<br />和烦(ch)引ؓ(f)-1的数比较Q这是不允许的。所?#8230;…如下<br />void insertSort(int * pData,int iLength)<br />{<br /> //从第二个元素开?向前?br /> int temp=pData[1];<br /> for (int i=1;i<iLength;)<br /> {<br />  for (int j=i-1;j>=0;j--)<br />  {<br />   //如果temp比前边的大,则前边的后移 最后把temp攑֜前面<br />   if (temp<pData[j])<br />   {<br />    pData[j+1]=pData[j];<br />     if (j==0)<br />     {<br />      pData[0]=temp;<br />     } <br />   }<br />    else<br />    {<br />     pData[j+1]=temp;<br />     break;<br />    }<br />   <br />  }<br />  <br />  temp=pData[++i];<br /> }<br />}</p> <p> </p> <p> </p> <p>希尔排序</p> <p>待学?fn)?/p> <p> </p> <p><br />堆排序!Q!Q!Q!Q!Q?/p> <p> q不?x)呢。?/p> <p> </p> <p>冒(chng)排序  ?#8230;…</p><img src ="http://m.shnenglu.com/cw290746987/aggbug/152088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cw290746987/" target="_blank">陈晓</a> 2011-07-30 14:29 <a href="http://m.shnenglu.com/cw290746987/archive/2011/07/30/152088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.study1.cn" target="_blank">þѸƵ</a>| <a href="http://www.45jj.cn" target="_blank">Ʒһþ㽶߿ۿ</a>| <a href="http://www.yonganwl.cn" target="_blank">޾Ʒþþþ66</a>| <a href="http://www.gmve.cn" target="_blank">޾ƷþþþĻ69 </a>| <a href="http://www.sijishi.cn" target="_blank">޾Ʒþþ</a>| <a href="http://www.aqbfrmi.cn" target="_blank">ɫۺϾþ</a>| <a href="http://www.haotese.cn" target="_blank">þۺۺϾþۺ</a>| <a href="http://www.radowatchessale.cn" target="_blank">þ99Ʒþ99ý</a>| <a href="http://www.56zhuanjia.com.cn" target="_blank">ڵþ</a>| <a href="http://www.jiawengc.cn" target="_blank">һɫþ88ۺպƷ</a>| <a href="http://www.henpu.cn" target="_blank">ۺϾƷ㽶þ</a>| <a href="http://www.92slw.cn" target="_blank">þŮƵ</a>| <a href="http://www.dlhybjgs.cn" target="_blank">ձþþվ</a>| <a href="http://www.ttzhan.cn" target="_blank">þ޾ƷĻ</a>| <a href="http://www.x-site.cn" target="_blank">þþžžþƷ</a>| <a href="http://www.3762g.cn" target="_blank">2022Ʒþþþ</a>| <a href="http://www.liuqianqian.cn" target="_blank">þӰԺþ㽶߿ۿ</a>| <a href="http://www.qinhaichang.cn" target="_blank">ľþþƷ</a>| <a href="http://www.po18h.cn" target="_blank">þþžžþƷֱ</a>| <a href="http://www.qhsn.net.cn" target="_blank">˾ƷѾþþþ</a>| <a href="http://www.xspree.cn" target="_blank">þþþ</a>| <a href="http://www.xy-ly.com.cn" target="_blank">ƷžžþƵ </a>| <a href="http://www.upboss.cn" target="_blank">Ʒþþþþþù˽</a>| <a href="http://www.b5ezt1.cn" target="_blank">þþþƷһ</a>| <a href="http://www.265z.cn" target="_blank">þþоƷ</a>| <a href="http://www.i231.cn" target="_blank">þ˾Ʒԭձ</a>| <a href="http://www.qcbijj.cn" target="_blank">ҹƷþ</a>| <a href="http://www.meiguohongfeng.com.cn" target="_blank">vaþþþ</a>| <a href="http://www.wannengsou.cn" target="_blank">պAVëƬƷþþ</a>| <a href="http://www.theboy.com.cn" target="_blank">鶹ŷۺϾþ</a>| <a href="http://www.leathvx.cn" target="_blank">þþһ</a>| <a href="http://www.uywz.cn" target="_blank">AVþþƷɫ</a>| <a href="http://www.fsyongli188.cn" target="_blank">ۺϳ˾þС˵</a>| <a href="http://www.gqfsm.cn" target="_blank">þ</a>| <a href="http://www.task5.cn" target="_blank">ŷһþþƷ</a>| <a href="http://www.zhoucheng888.cn" target="_blank">þþòƷһ</a>| <a href="http://www.bodymaker.com.cn" target="_blank">þþƷ鶹</a>| <a href="http://www.sxjax.cn" target="_blank">þ91Ʒþ91ۺ</a>| <a href="http://www.kfak.cn" target="_blank">Ů㽶þ**ëƬƷ</a>| <a href="http://www.oftr.cn" target="_blank">91þþþþۺ </a>| <a href="http://www.pnpxnc.cn" target="_blank">㽶99þùۺϾƷլ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>