无题 2008-01-23
我时常感到人生虚无。
以前有一个笑话,说的是一个迟暮之年的百万富翁,在冬日的暖阳中散步,碰到一个流浪汉在墙根处晒太阳,他问流浪汉:“你为什么不去工作?”
流浪汉答:“为什么要工作?”
“你可以挣钱呀。”
“挣钱做什么?”
“挣钱可以住大房子,可以享受美味佳肴,可以和一家人享受天伦之乐。”
“然后呢?”
“当你老了,可以衣食无忧,像我一样,每天散散步,晒晒太阳。”
“难道我现在没有在晒太阳吗?”
如果你有足够的勇气,也可以对自己的生活作同样的追问。最后的结果无非是,虚无。每个人或多或少会有那么一些时候,感觉人生虚无,所有的追求都失去意义。苍凉才是人生的底蕴呢。
另外一些时候,我对活着这件事情充满感激之情。我们每天出门,坐车,走路,吃饭,任何时候,一场小小的事故就可以让我们永远离开这个“肮脏而美丽的世界”,除了亲人的眼泪和陌生人的叹息,什么都不会留下。你去上班,你跟熟悉的人们说笑,你计划着年底的旅行,你准备回家的时候顺便去一下超市。。。所有的一切,一瞬间都可能全部消失不见。你永远不知道等待自己的将会是什么样的命运。
面对命运我们无能为力。
我们能做的,就是做一个宏观上悲观但是微观上乐观的人。去把握点点滴滴的快乐,去体会分分秒秒的喜悦。我想,所谓幸福,其实也不过就是那一个个闪闪发光的瞬间,那些美丽而肮脏的,瞬间。
看电影《投名状》
比较失望,烂片一部。
据说讲的是兄弟情。可是怎么看都像是小孩子过家家。《美国往事》也讲了兄弟情,也讲了背叛,可是差距就不是一星半点。
人物刻画混乱。没有一个可爱。没有讨人喜欢的人物,能有让人恨的人物也可以啊。偏偏全是傻,让人连爱恨都没有。
最烂的是那个旁白。简直无敌了。对情节没一点推动作用,对主题没一点升华作用,有事没事乱发感慨,感觉就是一堆没用的惊叹号。金成武长那么帅,没事就多拍拍那张脸嘛,说什么旁白呢,真是。
据说有八个编剧。作者越多作品越烂,果然是真理。
当然也并非一无是处。姜午阳看到赵二虎尸体,上前却又后退,悲伤而又不敢相信,那种复杂的情感表现的很精彩,很细腻。看到亲人死去,有嚎啕大哭的,有愤怒无比扬言报仇的,有痴痴呆呆一句话都说不出来的,但是这样的还是头一次见。
一切都好
我没想到我居然能够这么平静的来写这些字。
我能够这么平静的面对她。
我们说笑,我们喝酒。
她说,其实我们应该成为很好的朋友。
我觉得,其实我们都是同一类人。
没有喝高,没有眼泪。
我觉得,我从来没有跟她那么近过。
她身上女神的光辉开始褪去。
我终于可以把她当成一个真真实实的人来看待。
这样很好。
年轻时候最容易犯的错误,
一是把对方当神,
在乎得要死,
生怕说错做错;
二是孩子气的自虐,
比如把自己往死里喝,比如颓废到底,
渴望得到对方哪怕一丝一毫的怜悯,
就好像小孩子的叛逆,只不过渴望被人重视被人爱。
这些蠢事我以前都做过。
现在不会了。
痛快长大。
这样真好。
看电影 2008-01-08
一、《集结号》
看的过程中流了很多眼泪,看到旁边很多人也在擦眼泪。
迄今为止中国最好的战争片。
虽然还有不少缺点,比如谷子地可以更“轴”一点,后面部分可以更有张力一点,最后的大团圆结局完全可以处理成另外一种方式。
但是在现在的中国,也只能这样了。
作为一个商业片导演,在广电总局的大剪刀之下,能做到这一步已经很不容易了。
指责冯小刚走的还不够远,显然不太厚道。
二、《色戒》
好看。
很好看。
当然我看的是完整版。绝对不看阉割版。原则问题。
传说中的床戏的确必不可少。
当然,如果两个小时的电影您只看到床戏,那么请接受我深深的鄙视~~~ :)
如果您从这个电影里看出了所谓“为汉奸账目”、“卖国贼”之类的东东,
那么您还是离电影远一点,回家当你的愤青好了。
总之,都是好电影。
影评可以在www.douban.com找到。
不多说,推荐。
vc备忘:COM指针
一、标准模式
调用某个函数或方法,返回接口指针,在某个时间范围内使用这个接口指针,然后释放它。下面是使用这种模式的代码例子:
void f(void) {
IUnknown *pUnk = 0;
// 调用
HRESULT hr = GetSomeObject(&pUnk);
if (SUCCEEDED(hr)) {
// 使用
UseSomeObject(pUnk);
// 释放
pUnk->Release();
}
}
二、CComPtr
CComPtr类实现客户端基本的COM引用计数模型。CComPtr有一个数据成员,它是一个未经过任何加工的COM接口指针。其类型被作为模板参数传递:
CComPtr
CComPtr
缺省的构造函数将这个原始指针数据成员初始化为NULL。
CComPtr智能指针在析构时自动Release。
三、CComQIPtr
CComQIPtr与CComPtr关系很密切(实际上,它只增加了两个成员函数)。CComQIPtr必须要两个模板参数:一个是被操纵的指针类型 ,另一个是对应于这个指针类型的GUID。例如,下列代码声明了操纵IDataObject 和IPersist接口的智能指针:
CComQIPtr
CComQIPtr
CComQIPtr的优点是它有重载的构造函数和赋值操作符。同类版本(例如,接受相同类型的接口)仅仅AddRef右边的赋值/初始化操作。这实际上就是CComPtr的功能。异类版本(接受类型不一致的接口)正确调用QueryInterface来决定是否这个对象确实支持所请求的接口:
void f(IPersist *pPersist) {
CComQIPtr
// 同类赋值 - AddRef''s
p = pPersist;
CComQIPtr
// 异类赋值 - QueryInterface''s
do = pPersist;
}
再比如:
CComQIPtr
CComPtr
m_pWebBrowser2->get_Document(&psDisp);
psDocment = psDisp; // 这里自动调用QueryInterface



