Life & Code

代码是咒语,我是魔法师

更新了更新了

终于有设备写些东西了。 嘎嘎。

早些时候没电脑,在公司呆到晚上11点才回来宿舍,好像最敬业了,其实老子天天玩星际。星际真是个好游戏,怎么打都打不厌阿。一直以为打游戏打得好的,智力也不差。那公司智力最高的就是... 就是... 就是我..... 隔壁的顺子。平均手速有200多,我平均手速也只有140。强我太多了。那天鬼使神差的竟然被我赢了一回,害我一晚上没睡着。

这么些年了,也没学会玩新的游戏。从魔兽,泡泡堂,到现在火得不行的跑跑卡丁车,一概不会。看到同事们玩得很投入,我不喜欢,不理,我是不会被他们同化滴。

好像快端午节了,公司给每人发了两箱子蛋,一小箱子皮蛋+一小箱子盐蛋,我决定下个月的上半个月每天吃皮的,下半个月吃盐的,会不会变成傻的也未曾可知,估且试试吧,也许盐蛋超人就这么混出来的。我要是也变成超人,就发达了,无数Fans,当中肯定不乏美丽性感的女Fans,然后...乘机... 

MSN上面的博客空间是不是好些阿,还可以放歌什么的,我正在听《猫的报恩-幻化成风》,真想让看贴的你也听听这歌。

时间好像12点半了。 我还是早点睡觉觉了....

posted @ 2006-05-30 00:42 橙子 阅读(195) | 评论 (0)编辑 收藏

小学喜欢的女孩

353760.jpg

小学毕业之后,她去了岳云中学,我在区一中,所以也就没发展了.:)

 

posted @ 2006-04-12 21:00 橙子 阅读(336) | 评论 (4)编辑 收藏

魔羯座

 

“魔羯座是最佳的爱人”,这个传说已经流传很久了。他们总会让人感到很稳定、很安全。并且我们总能欣喜的看到,一旦他们陷入爱情,就将一直为两个人的共同目标而不懈努力着。充满了决心与果断的土星,不仅在魔羯人出生时带给他们这种稳定的特质,也赋予他们营造安全稳定的小家庭的能力与动力。
  
    魔羯座的人,对很多事情保有一种怀疑的态度,所以总是很难相信一件事情。要他们接受一件事情,需要比别的星座更多的时间与证明(可以想象,很多魔羯人根本对星座学说嗤之以鼻。但却不知道,这样的做法正好证明了星座对性格判断的正确性!)。在爱情上面,他们也是那种慢热型的人。他们决不会轻易爱上一个人,但一旦他们决定把自己的心交出去,他们将不会有所保留不会轻易放弃,他们,将用自己全部的心血,支持与珍爱自己的伴侣。
  
    这样看来,如果你寻找一个忠诚无私、永不放弃的爱人,魔羯如此,夫复何求?
  
    非凡的能力与薄弱的感情
  
    魔羯座有一个经典的形象,就是一只羊鱼。这个象征物很好的说明了魔羯座的良好的适应能力。穿梭陆地海洋,征服精神与肉体的各种困难,他们样样在行。而爱情,长期来看,绝对是一件艰巨而伟大的事业。对于魔羯来说,如果发现他们值得爱的人,他们将会用对待人生事业一样的奋斗精神来面对,并且勇于奉献。他们是忠诚的、善于照顾人的。即使在情绪最低潮的时候,他们也不过会看上去非常冷漠、精于算计并且自我压抑,不会伤到别人。
  
    而事实上,感情与情感,是魔羯这个看似全能的星座最不擅长的领域。他们几乎无法领悟自己感情的莫明感受,他们不了解通过什么有效方法,什么具体步骤,才能把感情“规范”起来。而一旦他们能够真正放弃这种徒劳的努力,用全新的精神来拥抱、接纳并且最终理解情感的独特力量,那么对于他们的爱情,将会有莫大的帮助。

魔羯人的“性”趣
  
    只有当一个魔羯不仅能够对自己未来的生活充满安全感,而且对两个人这份关系也充满安全感和信心时,他们才会焕发他们在性方面的精彩。这个时候的魔羯,懂得如何利用良好的耐心去等待对方,如何用奉献精神来满足对方。他们会用他们的努力发现自己伴侣的性欲引发点,帮助对方达到最大的满足。
  
    魔羯人的性趣不是那种天蝎人的粗糙、原始的激情迸发,不是那种天秤人充满浪漫与诱惑力的激情暗涌。他们的性是一种结合,是人类对性的本质需求以及通过性达到真正两个人的灵欲合一愿望的结合。
  
魔羯人的爱情模式
  
    魔羯人需要的是耐心与奉献精神。所以在一份感情刚刚开始的时候,他们显得非常容易害羞,而且显得有些笨拙。随着时间的推进,他们慢慢接纳这份感情之后,对这份感情认同感增强后,表现就会好得多。
  
    因为魔羯人无论做任何事情,都需要有一个理由;所以一份爱情,他们也许要找到一个理由。对于他们来说,如同人生中的其他事情一样,他们都会长期规划,并且按部就班的进行情感投资,并且期待在不远的将来收回相应的“成本”。这并不是他们的刻意功利,只不过性格如此而已。他们是绝对的唯物主义者,没有依赖心理。但如果魔羯人不能够了解自己的感情,他们就会显得冷漠,并且在两人关系中成为一个冷酷的独裁者。
  
    一般来讲,在确定关系之后,魔羯人将会在内心中对这份关系形成一种深刻的责任感。所以,如果你想与一个魔羯人分手,那将是一件极其艰巨的工作。而一旦你成功了,你的这个魔羯人将变得充满怨恨和复仇心。他们这种极端的情绪与天蝎人的极端形成原因不同。天蝎人会感到这是一种个人自尊的最大打击,而魔羯人根本不会把这件事情当作一个个人层面的事情,他们会以为是这个世界除了错误,因为事情的发展背叛了他们完善的无懈可击的计划。所以他们会变得异常压抑,无法承认事实。这,也是魔羯人应该注意的。

魔羯人爱情上的优点
  
   忠诚专一、有奉献精神、有耐心、和蔼亲切、会照顾人、严肃认真、值得依赖、善于容忍。
  
魔羯人爱情上的缺点
  
 占有欲与控制欲强、过于冷淡与超然、情感上缺乏深度与理解力、过分唯物主义、思路狭窄、报复心强、忧郁。
  
魔羯人喜欢的
  
    忠诚、有安全感、物质的稳定、事业上有进取心的伴侣、投入的感觉、有长期规划的爱情关系、可信、可靠、坚定不移。
  
魔羯人不喜欢的
  
    轻浮、突兀的感觉、不经雕琢的东西、被统治、娱乐游戏、利己主义、奢侈铺张、受到爱人的质问与挑战、无法决定与预期的感觉



感情(超级白痴)
    
  
    魔羯的人傻的可以,他们并不了解爱情,但是他们只知道爱的感觉,对于他们任何感情的表达都是一种感觉,他们很认真的感受每一个感觉,大部分感觉都可以一个人去感觉,最失败的爱却要两个人,傻傻的魔羯一开始会认为,爱你是我自己的事情和你没关系,可是到后来越来越感觉不是滋味,于是开始对对方表白,表白成功后却不知道如何走下一步,也许是太不浪漫在作祟,魔羯的人可能会拿任何事情开玩笑,但是在爱情方面只要他说出"我爱你"或者话题谈到将来结婚,那么他绝对不是在开玩笑,魔羯很物质,但是这点和金牛处女不一样,他们的物质表现在爱上,他们认为给所爱的人带来无限的物质的就是最大的幸福,因为他们很自卑,唯一能用自己努力获得来的就只有物质了.
    
  
    当自己努力的去让自己所爱的人幸福的时候,自己所爱的人却因为其他的其他离开了他,而到最后自己却不明白自己到底做错了什么,真是可怜的家伙们.
    
  
追求
         魔羯的追求是认真的,只要对方不让魔羯认为完全没有机会,魔羯就会像疯子一样的追求着,他们其实对自己非常没有信心,唯一的动力只是相信自己在爱着,为了对的起自己的感情,为了认真的去爱一回.
  
  
被追求 
  
    魔羯对于不喜欢的人不会给予任何机会,魔羯的人很善良,而且他们知道长痛不如短痛的道理,如果魔羯勉强接受了你,那也是出于一种同情心,但是交往没几天他们就开始内疚,他们认为怜悯的爱对追求者来说是一种伤害,他们会尽量的躲避并且对追求者很冷淡追求者尽量的让追求者开始讨厌她/他.如果追求者不理解的话,放心最长不超过一年,魔羯会很理智的告诉你别在联系了,她/他会消失的无影无纵.
  
拒绝 
    如果魔羯真的爱了就不会去拒绝你,永远不会.
  
    被拒绝 魔羯比任何一个星座对感情都很认真,恢复伤痕的时间也很长,他们会选择消失,这样对你对他都有好处,因为他怕多看你一眼而又再次无法自拔,他怕再多看你一眼 心如刀割


朋友(最喜欢装傻的星座)
    
  
    魔羯的人都很没有安全感,他们喜欢在任何人面前装傻,这可不是一般的装傻能力,魔羯人聪明就在于这点,他们认为只有傻子在会不牵扯到任何伤害,与其做一个聪明的人不如当一个傻子平凡而又随意,如果不是值得魔羯相信的朋友魔羯永远不会让对方知道自己会有智慧,而无论安全与不安全魔羯对朋友都很真,他们很珍惜这些朋友,他们最希望获得朋友的信任,如果从一个朋友那里得不到信任,他不会再与这个朋友交往下去.和魔羯接触过的人都会认为他们脾气很好,好的似乎发傻,其实他们并不是脾气好,只是他们很会装,因为他们了解身边的朋友的所有性格,所以他们在包容对方,就算你做了什么过分的事,他们也早就想考虑好如果对方为什么会这样做,最明显一点,你们可以去看看身边魔羯的朋友,无论你怎么做那些魔羯都不会很惊讶的,其实他们已经知道你为什么会这样了.魔羯的交友观也很随便,他们可能会和贵族很好,也可能会和乞丐聊天,一切的一切只是心灵的交往,很少有魔羯会有势力眼,除非你这个人人品太差了


魔羯的双重性格(地狱或天堂)
    
  
    年轻的魔羯都是很单纯的,我想他们也不会知道自己将从天使变成恶魔,魔羯座的人天生善良,感情也都很脆弱,也许会因为一些很小的事情难过很长时间,所以他们通常在表面表现的酷酷的与事隔离的样子,其实他们只是不希望让别人看到他脆弱的一面,坚强,理智,承受是魔羯的代名词,他们并不是很随便的表达自己所想,他们希望了解身边所有人的性格,并不是因为好奇,好象只是因为一种安全感,为了保护自己魔羯生出了一种特殊能力,魔羯相对任何星座来比能在最段时间看出一个人的性格无论他们在如何隐藏,这点很像天蝎但是他们却看不出对方的心,他们很容易就会了解到他们身边每一个人的优缺点,但是他们通常不会说出来,也不会太介意,所有的魔羯都很包容对方
    请记得,如果有一只魔羯指出你的缺点那一定是友善的,虽然他们会用一种讽刺的口气来指出.
    
  
    所有魔羯都拥有2个性格,只是大部分魔羯都不愿意去接受,因为他们希望自己永远的傻傻的活下去,魔羯的坏可以媲美过所有星座,也许他们不相信,但是随着时间的积累魔羯的人在慢慢变坏,其实这也是一种自我保护,他们需要知道了解自己最后的一张王牌,做不做就看对方是否达到让魔羯抱负的地步了,这并不是在表扬,似乎用阴险可以形容,当魔羯讨厌一个人的时候那就是一种绝对,魔羯不会随便讨厌一个人,但是如果哪个人做的太过分,这个人会从魔羯心底彻底抹杀,如果这个人激怒了魔羯,呵呵那么这个人就只能等着灾难的降临,
    
  
    魔羯是个比较城府的人,他们不会表面去得罪了,但是他们会计划着让这个人知道他所做的事情将会给自己带来多大的回报,魔羯的报复手段极其残忍,他会加倍的还给你,(如果你有一天遭受到摸名的灾难那么你去想想你在什么时候得罪了魔羯)魔羯并不会随便的去加害一个人,因为魔羯也讨厌自己的坏,他们是天才的杀手,一切的一切从很早以前就做好计划,而且这些计划在没有事件出现前他们就在考虑如何完美并无破绽的进行报复计划,也许这些和他的悲观有些联系,魔羯的人很了解世界,但他们固执的相信美好尽管自己知道那是不可能的,大部分魔羯都讨厌坏坏的自己,当然想抛弃自己是不可能的.

posted @ 2006-04-12 20:37 橙子 阅读(194) | 评论 (0)编辑 收藏

<转>Andrea Bocelli -《Amore》

post-328226-1139745515.jpg
中文名称:Amore
发行时间:2006年01月31日
专辑歌手Andrea Bocelli
语言:意大利语
简介
Celine Dion曾说:“若上帝也有歌声的话,那声音就是Andrea Bocelli”。

从Andrea Bocelli与Sarah Brightman合唱《Time To Say Goodbye》开始,全球乐迷似乎找到一种映照心灵的歌声,一道照亮心灵的曙光,一份对生命的热情礼赞。生于1958年9月22日的Andrea Bocelli,来自距离意大利比塞塔不远的莱亚提柯市的小镇农庄,六岁开始学钢琴,接着又学了横笛与萨克斯风,之后转而对歌剧的兴趣,大学念法律的Andrea Bocelli,当了一年的辩护律师,偶遇传奇男高音Franco Corelli,拜师学唱。

  Andrea Bocelli从小就生活在一个热爱音乐的农业家庭中。家中人口众多,以种植葡萄和橄榄为生,安德烈的父亲桑德罗至今仍在自制他那小产量的“Chianti Bocelli”葡萄酒。拉亚蒂科靠近具有悠久音乐传统的名城塔斯卡尼,拉亚蒂科人都非常热爱音乐。波切利从6岁时开始学钢琴,随后又学长笛、萨克管,并且显露出惊人的音乐天赋,尤其在歌唱方面,小小年纪就对歌剧特别感兴趣。值得一提的是,波切利自小是一个弱视儿童,12岁时,一次踢足球的意外,使他双眼全盲,但他不自暴自弃,坚持学唱。

  中学毕业后,波切利离开家乡,进入比萨大学法律系。成为法学博士之后,他当了一年的执业律师。童年的梦想似乎越来越远了。就在他30岁的时候,机会来了,有消息传出弗兰科·科瑞利将在都灵招募学生,公开授课,他欣喜若狂,立刻报名投考,并顺利地成为了大师的学生。在学习期间,帕瓦洛蒂在歌唱上也给过他重要的意见:“记住要唱得柔和,不要强迫用嗓……”,至今波切利他那像说话似的歌唱就是受到帕瓦洛蒂的启示。那时候为了交学费,波切利白天当律师,晚上去酒吧弹钢琴,并在期间遇到了一个叫尤瑞卡的姑娘,两人情投意合,幸福生活至今。

  1992年开始,一连串的机遇使波塞利从一个酒吧钢琴师一跃成为国际巨星。在一次偶然的机会中,意大利着名摇滚歌手佐凯洛听到波切利的演唱,大为欣赏,立即联同他唱《求主怜悯歌》。这让波切利随即获得1993年圣雷莫音乐节最佳新人奖。之后他签约总部设在米兰的着名的Sugar唱片公司。不久之后推出的首张个人专辑《宁静的夜海》,并再获得圣雷莫音乐节大奖,打进了意大利流行榜十大之一,他与莎拉·布莱曼灌唱的《告别的时刻》一曲,更是盛兴一时,成为欧洲流行榜冠军歌,奠定了他的国际流行歌手的地位。1994年,他应邀参与在摩德纳举行的帕瓦洛蒂与流行群星音乐会的演出,大大提高了他的知名度。继《意大利之旅》之后,1997年他推出《浪漫曲》,以崭新的演绎方法突破了古典、流行的界限,雄踞荷兰、比利时、瑞典、法国、奥地利、德国、意大利流行榜。其实,波切利是学Bel Canto的,却以Pop闯进乐坛,而且搞出了名堂。

  “我认为流行音乐在我的古典音乐事业中有着重要的地位,即使如卡鲁索、吉利等伟大的男高音歌唱家也曾唱过流行歌曲啊。通过流行音乐,可以吸引更多的观众进入剧院观赏歌剧。”波切利如此说,也是如此做的。1998年波切利推出的《咏叹调》是国际上发行最成功的歌剧专辑,在多个国家的古典音乐排行榜上遥遥领先。 波切利在这张专辑中充分展示了他的大胆与能力,所选唱的曲目都是传统男高音中最难唱和最富于技巧性的咏叹调,有普契尼“冰冷的小手”、奇妙的和谐、“今夜星光灿烂”、“再见吧,可爱的家”;威尔第的“美女如云”;比才的“花之歌”等,一个新秀能将这些沉重的咏叹调“啃”下来已算不错,唱法也比较正统、自然、舒服,始终保持着柔和的音色和稳定的声音,不过重也不太冲,听来令人放心。他高声区的CLOSE是采用母音变圆变暗的唱法,有很强的穿透力,混合共鸣使用得很好,也就是说他的CLOSE给人的感觉声音是从胸、腹中发出的。如他带有胸声唱出9个HIGH C的"多么快乐的一天",有着帕瓦洛蒂的影子。

  如今,被万千歌迷喜爱的波塞利已经实现了童年的梦想,但事业的巨大成功并没有破坏他内心的宁静。他依然是一个喜欢冒险、对生活充满激情的人。除了音乐,他还喜欢文学,尤其是俄法作家的作品,他喜欢朋友,喜欢做菜,经常占领家中厨房,兴致勃勃地搞出几道拿手的意大利名菜。他并不介意自己是一个盲人的事实,他坚信法国作家安东尼·德·圣·尤伯瑞的话:“心灵是通向世界的唯一窗口。”

2006年冬奥会将在意大利都灵市举行,波切利也将在闭幕式上表演,同时情人节也临近,波切利适时推出了他个人新专辑《Amore》。唱片仍然由老朋友及着名制作人Tony Renis操刀制作。


专辑曲目

01.Amapola
02.Besame Mucho
03.Les Feuilles Mortes (Autumn Leaves) (featuring Kenny G)
04.Mi Manchi
05.Somos Novios (It's Impossible) (duet with Christina Aguilera)
06.Solamente Una Vez
07.Jurame
08.Pero Te Extrano
09.Canzoni Stonate (featuring Stevie Wonder on harmonica and vocals)
10.L'Appuntamento
11.Cuando Me Enamoro
12.Can't Help Falling In Love(Live At Lake Las Vegas)
13.Because We Believe
14.Ama Credi E Vai (Because We Believe)

原地址: http://lib.verycd.com/2006/02/12/0000089598.html

posted @ 2006-04-11 11:43 橙子 阅读(485) | 评论 (0)编辑 收藏

详细解说STL系列之string之家庭作业. 哈哈. :)

家庭作业:

#include <string>
#include <iostream>
#include <algorithm>
#include <vector>
#include <fstream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
        ifstream in("c:\\teststring.txt" ) ;

        string  strtmp;
        string  strset = "| ,";

        while(getline(in, strtmp, '\n'))
        {
                size_t pos1 = 0;
                size_t pos2 = 0;
                while(true)
                {
                        pos1 = strtmp.find_first_not_of(strset,pos2);
                        if( pos1 == string::npos)
                                break;
                        pos2 = strtmp.find_first_of(strset,pos1);
                        cout << strtmp.substr(pos1, pos2 - pos1 )<<"  ";
                }
                cout <<endl;
        }
        return 0;
}

//c:\\teststring.txt
张三|3456123, 湖南
李四,4564234| 湖北
王小二, 4433253|北京

posted @ 2006-04-11 11:33 橙子 阅读(262) | 评论 (0)编辑 收藏

愚人节日记

今天是愚人节,我决定写篇日记.

可怜的Jaeger  ,成为今天第一次被愚的人,谢谢他!下面是聊天记录:

//*****************   begin  **********************
听风的歌 09:10:45
何稳文回来了。                                        
 
Jaeger 09:17:40
好像还没吧
 听风的歌 09:13:05
回来了呀。 我昨天还和她吃饭了。
 
Jaeger 09:21:37
啊,不是吧,前天我还跟她联系了。这么快就赶回来了?
 听风的歌 09:15:35
呵呵。
 
Jaeger 09:22:23
那我打她小灵通看看。。呵
Jaeger 09:24:31
靠,忘了今天愚人节了。。
Jaeger 09:24:38
你个鸟人。。
 听风的歌 09:19:22
哈哈。
 
 听风的歌 09:22:04
恭喜你阿。 第一个被骗的。
 
Jaeger 09:29:13
服了U。。
一时没想起来今天是愚人节
 听风的歌 09:24:32
呵呵。 当你准备来暴打我的时候,我准备告诉你。 没想到你领悟了。
 
Jaeger 09:32:18
嘿,刚刚正好听到旁边的人讲 愚人节的事,所以才想起来袅。。

//*****************   end  **********************

所在:办公室只有我一个奴隶,奴隶主们去深圳游玩了,另一个奴隶(谭)患了疾病(八成是假的),请假了.

远方:今天考试,也不知道她考怎么样了.

窗外:天气依然晴好

大半个上午过去了,做点什么才好呢.书还没翻一个字呢.4月26要考试了.真想请一个月假在家K书.我决定混完再出去走走.

和顺子玩两把星际再说!

posted @ 2006-04-01 10:27 橙子 阅读(394) | 评论 (0)编辑 收藏

Win32服务控制类

/**
W32Server.h   
http://www.cppblog.com/lovelypig  橙子
*/
#ifndef  _CW32SERVER_H
#define  _CW32SERVER_H
#include <windows.h>
#include <stdio.h>

 

class CW32Server
{
 TCHAR  m_szServerName[MAX_PATH];
 SC_HANDLE   m_hService;
 SC_HANDLE   m_hScm;
 SERVICE_STATUS ServiceStatus;
 BYTE  m_cfgBuf[4096];
public:

 CW32Server(void);
 CW32Server(const TCHAR *strServerName); 
 BOOL    Open(const TCHAR *strServerName);  

 /**  返回状态:
  SERVICE_CONTINUE_PENDING The service continue is pending.
  SERVICE_PAUSE_PENDING The service pause is pending.
  SERVICE_PAUSED The service is paused.
  SERVICE_RUNNING The service is running.
  SERVICE_START_PENDING The service is starting.
  SERVICE_STOP_PENDING The service is stopping.
  SERVICE_STOPPED The service is not running.
 */
 DWORD GetState();     
 BOOL    SetState(DWORD state);
 BOOL    Start();
 BOOL    Stop();

 /**
  SERVICE_AUTO_START  A service started automatically by the service control manager during system startup.
  SERVICE_BOOT_START  A device driver started by the system loader. This value is valid only for driver services.
  SERVICE_DEMAND_START A service started by the service control manager when a process calls the StartService function.
  SERVICE_DISABLED  A service that cannot be started. Attempts to start the service result in the error code ERROR_SERVICE_DISABLED.
  SERVICE_SYSTEM_START
 */
 BOOL    GetConfig();   //如果返回真,配置状态填充在 m_config  中
 SC_HANDLE    GetHandle();  //需要禁用、启动服务,使用 ChangeServiceConfig(GetHandle(),...)   查看MSDN
 ~CW32Server(void);

 QUERY_SERVICE_CONFIG *m_config;
};


#endif


/**
W32Server.cpp
http://www.cppblog.com/lovelypig  橙子
*/
#include ".\w32server.h"
#include <assert.h>

CW32Server::CW32Server(void)
{
 memset((char*)&m_szServerName,0,sizeof(TCHAR)*MAX_PATH);
 memset((char*)&m_config,0,sizeof(m_config));
 m_hService = 0;
 m_hScm   = 0;
 m_config = (QUERY_SERVICE_CONFIG*)m_cfgBuf;
}

CW32Server::CW32Server(const TCHAR *strServerName)

 assert(strServerName);

 CW32Server();
 _tcscpy(m_szServerName,strServerName); 

 m_hScm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);
 if(!m_hScm)
 {
  return ;
 }
 m_hService=OpenService(m_hScm,strServerName,SERVICE_ALL_ACCESS);
 if(!m_hService)
 {
  CloseServiceHandle(m_hScm);
  m_hScm = NULL;
    }
}
CW32Server::~CW32Server(void)
{
 if( m_hScm )
 {
  CloseServiceHandle(m_hScm);
  m_hScm = NULL;
 }
 if( m_hService )
 {
  CloseServiceHandle(m_hService);
  m_hService = NULL;
 }
}

BOOL   CW32Server:: Open(const TCHAR *strServerName)
{
 assert(strServerName);

 if( m_hScm )
 {
  CloseServiceHandle(m_hScm);
  m_hScm = NULL;
 }
 if( m_hService )
 {
  CloseServiceHandle(m_hService);
  m_hService = NULL;
 }

 _tcscpy(m_szServerName,strServerName); 
 m_hScm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);
 if(!m_hScm)
 {
  return FALSE;
 }
 m_hService=OpenService(m_hScm,strServerName,SERVICE_ALL_ACCESS);
 if(!m_hService)
 {
  CloseServiceHandle(m_hScm);
  m_hScm = NULL;
  return FALSE;
 }
 return TRUE;
}

DWORD CW32Server::GetState()

 assert(m_hService);

    if(QueryServiceStatus(m_hService,&ServiceStatus))
 {
  return ServiceStatus.dwCurrentState;
 }
 else
 {
  return 0xffffffff;
 }
}

BOOL    CW32Server::SetState(DWORD state)
{
 assert(m_hService);

 return ControlService(m_hService,state,&ServiceStatus);
}

BOOL    CW32Server::Start()
{
 assert(m_hService);

 return StartService(m_hService,0,NULL);

}

BOOL    CW32Server::Stop()
{
 assert(m_hService);

 return ControlService(m_hService,SERVICE_CONTROL_STOP,&ServiceStatus);
}

BOOL    CW32Server::GetConfig()
{
 assert(m_hService);
 
 DWORD cbBufSize = 4096;
 DWORD pcbBytesNeeded = 4096;
 return QueryServiceConfig(m_hService,m_config,cbBufSize, &pcbBytesNeeded);
}

SC_HANDLE  CW32Server::GetHandle()
{
 assert(m_hService);
 return m_hService;
}

posted @ 2006-04-01 09:55 橙子 阅读(484) | 评论 (1)编辑 收藏

网卡类

//说明:平时做更改网卡IP这样的活挺多的,粘来粘去麻烦,简单的打了个包.
//引用:VCkbase_不重起Windows直接更改IP地址
//代码:


//Adapter_.h
#ifndef _ADAPTER_H
#define _ADAPTER_H
#include <tchar.h>
#include <Windows.h>
#include <stdio.h>
#include <Iphlpapi.h>
#pragma comment(lib,"iphlpapi.lib")
#pragma comment(lib,"ws2_32.lib")
#include <assert.h>
#include <string>
#include <vector>
using   namespace  std;


typedef int (CALLBACK* DHCPNOTIFYPROC)(LPWSTR, LPWSTR, BOOL, DWORD, DWORD, DWORD, int);

class CAdapter
{
 private:
  class ADAPTER_INFO
  {
    string strName;   // 适配器名称
    string strDriverDesc; // 适配器描述
    string strIP;   // IP地址
    string strSubnetMask;  // 子网掩码
    string strNetGate;  // 网关
    string strDNS;         //DNS
    string strMAC;
    ::MIB_IFROW IfRow;  //用于流量,状态显示

    BOOL   RegSetIP();
    BOOL   ChangeSysSet();
    
   public:
    void   SetInx(DWORD _dwpIndex) { IfRow.dwIndex  = _dwpIndex; }

    //取得IP信息
    string& GetName(){  return strName; }
    string& GetDriverDesc(){ return strDriverDesc; }
    string& GetIP(){ return strIP; }
    string& GetSubnetMask(){ return strSubnetMask; }
    string& GetNetGate(){ return strNetGate; }
    string& GetDNS(){ return strDNS; }
    string& GetMAC(){ return strMAC; }
    
    //取得状态,流量
    DWORD    GetState(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }
     /*
     #define MIB_IF_OPER_STATUS_NON_OPERATIONAL      0
     #define MIB_IF_OPER_STATUS_UNREACHABLE          1
     #define MIB_IF_OPER_STATUS_DISCONNECTED         2
     #define MIB_IF_OPER_STATUS_CONNECTING           3
     #define MIB_IF_OPER_STATUS_CONNECTED            4
     #define MIB_IF_OPER_STATUS_OPERATIONAL          5
     */
     return IfRow.dwOperStatus ;
    }
    
    DWORD    GetSendBytes(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }
     return IfRow.dwOutOctets;
    }
    DWORD    GetReceiveBytes(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }  
     return IfRow.dwInOctets;
    }
    DWORD   GetSpeed(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }
     return IfRow.dwSpeed;
    }

    DWORD   GetOutUcastPkts(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }
     return IfRow.dwOutUcastPkts;
    } 
    DWORD   GetOutNUcastPkts(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }
     return IfRow.dwOutNUcastPkts;
    } 
    DWORD   GetInUcastPkts(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }
     return IfRow.dwInUcastPkts;
    } 
    DWORD   GetInNUcastPkts(){
     if(GetIfEntry(&IfRow) != NO_ERROR)
     {
      return 0;
     }
     return IfRow.dwInNUcastPkts;
    } 
    //设置IP信息
    BOOL SetName(string _PstrName  ,BOOL bChange = 0)  { 
     strName = _PstrName ;
     if( bChange)
      return ChangeSysSet();
     return TRUE;
    }
    BOOL SetDriverDesc(string _PstrDriverDesc,BOOL bChange = 0){  
     strDriverDesc = _PstrDriverDesc;
     if( bChange)
      ChangeSysSet();
     return TRUE;
    }
    BOOL SetIP(string _PstrIP,BOOL bChange = 0){  
     strIP = _PstrIP ;
     if( bChange)
      ChangeSysSet();
     return TRUE;
    }
    BOOL SetSubnetMask(string _PstrSubnetMask,BOOL bChange = 0){  
     strSubnetMask = _PstrSubnetMask;
     if( bChange)
      ChangeSysSet();
     return TRUE;
    }
    BOOL SetNetGate(string _PstrNetGate,BOOL bChange = 0){ 
     strNetGate = _PstrNetGate;
     if( bChange)
      ChangeSysSet();
     return TRUE;
    }
    BOOL SetDNS(string strSetDNS = ""){
     if( !strSetDNS.length() )
     {
      HKEY hKey;
      DWORD dwType;
      char  szReadBuf[64];
      DWORD cbData = 64;
      string strKeyName ="SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
      strKeyName += this->strName;
      if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,strKeyName.c_str(),0,
         KEY_READ,&hKey) != ERROR_SUCCESS)
      {
       return FALSE;
      }
      if( RegQueryValueExA(hKey,"NameServer",0,&dwType,(BYTE*)szReadBuf,&cbData) != ERROR_SUCCESS)
      {
       return FALSE;
      }
      RegCloseKey(hKey);
      strDNS = szReadBuf;
     }
     else
     {
      strDNS = strSetDNS;
      return ChangeSysSet();
     }
     return TRUE;
    }
    void SetMAC(BYTE *Address){ 
      char  buf[6];
      for(int i= 0;i< 6;i++)
      {
       sprintf( buf,"%02x",Address[i]);
       strMAC += string(buf);
      }
      /*
      sprintf(pAI->mac, "%02X%02X%02X%02X%02X%02X",
       int (pAdapterInfo->Address[0]),
       int (pAdapterInfo->Address[1]),
       int (pAdapterInfo->Address[2]),
       int (pAdapterInfo->Address[3]),
       int (pAdapterInfo->Address[4]),
       int (pAdapterInfo->Address[5]));
      */
    }
  };
 vector<ADAPTER_INFO> m_AdapterVec;
 public:
  CAdapter(void);
  ~CAdapter(void);

  size_t GetAdapterCount ()
  {
   return m_AdapterVec.size();
  }

  ADAPTER_INFO& operator[](DWORD iInx)
  {
   assert(iInx < m_AdapterVec.size());
   return m_AdapterVec[iInx];
  }
};


#endif


//------------------------------------------
//Adapter_.cpp
#include ".\adapter_.h"


CAdapter::CAdapter(void)
{
 DWORD ulAdapterInfoSize = sizeof(IP_ADAPTER_INFO);
 IP_ADAPTER_INFO *pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize];
 if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_BUFFER_OVERFLOW ) // 缓冲区不够大
 {
  delete pAdapterInfo;
  pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize];
 }
 if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_SUCCESS )
 {
  do {
   if (pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET)
   {
    ADAPTER_INFO *pAI = new ADAPTER_INFO;
    pAI->SetInx(pAdapterInfo->Index);
    pAI->SetName(pAdapterInfo->AdapterName);
    pAI->SetDriverDesc(pAdapterInfo->Description);
    pAI->SetMAC(pAdapterInfo->Address);
    pAI->SetIP(pAdapterInfo->IpAddressList.IpAddress.String);
    pAI->SetNetGate(pAdapterInfo->GatewayList.IpAddress.String);
    pAI->SetSubnetMask(pAdapterInfo->IpAddressList.IpMask.String);
    pAI->SetDNS();
    m_AdapterVec.push_back(*pAI);
   }
   pAdapterInfo = pAdapterInfo->Next;
  } while(pAdapterInfo);
 }
 delete pAdapterInfo;
}

CAdapter::~CAdapter(void)
{
 m_AdapterVec.clear();
}

BOOL CAdapter::ADAPTER_INFO::ChangeSysSet()
{
 //在注册表中修改信息
 if(!RegSetIP())
 {
  return FALSE;
 }

 HINSTANCE  hDhcpDll;
 DHCPNOTIFYPROC pDhcpNotifyProc;
 WCHAR wcAdapterName[256];
 MultiByteToWideChar(CP_ACP, 0, this->strName.c_str(), -1, wcAdapterName,256);

 if((hDhcpDll = LoadLibraryA("dhcpcsvc")) == NULL)
 {
  return FALSE;
 }

 if((pDhcpNotifyProc = (DHCPNOTIFYPROC)GetProcAddress(hDhcpDll, "DhcpNotifyConfigChange")) != NULL)
 {
  if((pDhcpNotifyProc)(NULL, wcAdapterName, TRUE,
   0,    //指明第几个IP地址,如果只有该接口只有一个IP地址则为0
   inet_addr(strIP.c_str()), //
   inet_addr(strSubnetMask.c_str()),
   0    //对DHCP的操作 0:不修改, 1:启用 DHCP,2:禁用 DHCP
   ) != ERROR_SUCCESS)
  {
   FreeLibrary(hDhcpDll);
   return FALSE;
  }
  FreeLibrary(hDhcpDll);
 }
 return TRUE;
}

BOOL CAdapter::ADAPTER_INFO::RegSetIP()
{
 HKEY hKey;
 string strKeyName ="SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
 strKeyName += strName;

 if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,
  strKeyName.c_str(),
  0,
  KEY_WRITE,
  &hKey) != ERROR_SUCCESS)
 {
  return FALSE;
 }
 strIP.push_back('\0');
 strSubnetMask.push_back('\0');
 strNetGate.push_back('\0');

 RegSetValueExA(hKey, "IPAddress", 0, REG_MULTI_SZ, (unsigned char*)strIP.data(), (DWORD)strIP.length()+2);
 RegSetValueExA(hKey, "SubnetMask", 0, REG_MULTI_SZ, (unsigned char*)strSubnetMask.data(),(DWORD)strSubnetMask.length()+2 );
 RegSetValueExA(hKey, "DefaultGateway", 0, REG_MULTI_SZ, (unsigned char*)strNetGate.data(), (DWORD)strNetGate.length()+2);
 RegSetValueExA(hKey, "NameServer", 0, REG_SZ, (unsigned char*)strDNS.data(),(DWORD) strDNS.length());
 RegCloseKey(hKey);
 return TRUE;
}

posted @ 2006-04-01 09:46 橙子 阅读(1896) | 评论 (2)编辑 收藏

IE被强X了

上网的时候,无缘无故多出来一个“天下搜索”的搜索工具条。

我可怜的IE。

posted @ 2006-03-19 19:54 橙子 阅读(184) | 评论 (0)编辑 收藏

乱写

今天改了网名,从“羯”改成“听风的歌”。村上春村写了一本小说叫做《且听风吟》,港台译作《听风的歌》,郭富城唱了一首歌《听风的歌》,朴树唱了一首歌《且听风吟》,在QQ上搜索了一下,无数多的“听风的歌”,看来这个网名还是挺有名的。管他们,我喜欢就好了。
最初的网名叫“小鸡”,王斌取个网名叫“小鸭”,现在想起来,当时都真够傻B的。
想起几个巨牛的ID,“赵兄你托我办点事”,“卖身葬楼主”... ...都是人他M生的,我咋就这么没创意尼。

一点钟准时睡觉!

posted @ 2006-03-10 00:54 橙子 阅读(174) | 评论 (0)编辑 收藏

近况

最近天气变暖了,喜欢!
星期天,走在洒满阳光的路上,闭上眼睛,享受太阳公公给我们的光和热,春风抚面,真想吟诗一首!(哎呀呀!!!谁这么缺德,把大石头放在路中间)

把硬盘里的东西用iSCSI备份到公司电脑里,然后,一顿狂删,呵呵。 真是爽,愣是被我腾出来10G空间。 可以放电影,可以放APE。HOHO~~ 怎么有种大便过后的快感(靠,我真是太恶心了)。

前几天去中南工大看赵慰,顺便蹭饭,那儿的烧烤鱼真难吃,堕落街的好吃多了,我决定下次不去了。她姐姐赵丹来长沙学习,要十几天,不怎么想见她,怕见了,也不知道说些什么才好,那多无聊阿。

李国帅泡妞可真历害,一本瑞丽就把小MM泡到了,前几天还没听他提起,今天两人就搂在一起,像几十年的老夫妻一样在街上逛街了。我还是太嫩了,景仰。

还想说点什么呢,诅咒一下公司的会计吧,让她把工资打到我丢掉的银行卡上,害我衣食没有着落,害我不能温饱思淫欲。

小虫把我的相片整得像个超级塞亚人,我本来觉得像西藏啦嘛的,A,也不能怪她,相片照得硕。

... ...

posted @ 2006-03-08 23:39 橙子 阅读(147) | 评论 (0)编辑 收藏

<> 例子2 QueryInterface的实现

今天一大早就把例子完成了

#include <objbase.h>
#include <unknwn.h>
#include <iostream>
using namespace std;

interface IX:IUnknown{
 virtual void __stdcall FX() = 0;
};

interface IY:IUnknown{
 virtual void __stdcall FY() = 0;
};

interface IZ:IUnknown{
 virtual void __stdcall FZ() = 0;
};

extern const IID IID_IX;
extern const IID IID_IY;
extern const IID IID_IZ;

class CA:public IX,
   public IY
{
 virtual void __stdcall FY() {cout <<"CA::FY"<<endl; }
 virtual void __stdcall FX() {cout <<"CA::FX"<<endl; }      
        virtual HRESULT STDMETHODCALLTYPE QueryInterface(
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject)
  {
   if(riid == IID_IX)
   {
    *ppvObject = static_cast<IX*>(this);
   }
   else if(riid == IID_IY)
   {
    *ppvObject = static_cast<IY*>(this);
   }
   else if(riid == IID_IUnknown)
   {
    *ppvObject = static_cast<IX*>(this);
   }
   else
   {
    *ppvObject = NULL;
    return E_NOINTERFACE;
   }
   reinterpret_cast<IUnknown *>(*ppvObject)->AddRef();
   return S_OK;

  }
       
  virtual ULONG STDMETHODCALLTYPE AddRef( void){ return 0; }
       
  virtual ULONG STDMETHODCALLTYPE Release( void) {return 0; } 

};

IUnknown * CreateInstance()
{
     IUnknown * pI = static_cast <IX*>(new CA);
     pI->AddRef();
     return pI;
}

// {1A5EE493-AD77-4224-9A78-5F2DD3874714}
static const IID IID_IX =
{ 0x1a5ee493, 0xad77, 0x4224, { 0x9a, 0x78, 0x5f, 0x2d, 0xd3, 0x87, 0x47, 0x14 } };

// {AB55D03D-2160-4197-8AD2-36A36E33F69B}
static const IID IID_IY =
{ 0xab55d03d, 0x2160, 0x4197, { 0x8a, 0xd2, 0x36, 0xa3, 0x6e, 0x33, 0xf6, 0x9b } };

// {5443E124-25A6-451e-A634-2BA392788C38}
static const IID IID_IZ =
{ 0x5443e124, 0x25a6, 0x451e, { 0xa6, 0x34, 0x2b, 0xa3, 0x92, 0x78, 0x8c, 0x38 } };

int _tmain(int argc, _TCHAR* argv[])
{
    HRESULT  hr;
    IUnknown *pUnknown = CreateInstance();
    IX *pIX = NULL;
    hr = pUnknown->QueryInterface(IID_IX,(void **)(&pIX));
    if(SUCCEEDED(hr))
    {
         pIX->FX();
    }

    IY *pIY = NULL;
    hr = pUnknown->QueryInterface(IID_IY,(void **)(&pIY));
    if(SUCCEEDED(hr))
    {
         pIY->FY();
    }
     delete pUnknown;
     return 0;
}

/*
口QueryInterface 返回的总是同一IUnknown指针
口若客户曾经获取过某个接口.那么它将总能获取此接口。
口客户可以再次获取已经拥有的接口。
口客户可以返回到起始接口。
口若能够从某个接口获取某特定接口,那么可以从任意接口都将可以获取此接口
下面我们将详细讨论这些规则。
*/

posted @ 2006-03-02 09:35 橙子 阅读(2077) | 评论 (1)编辑 收藏

《COM内幕》

下载了电子书,超星格式。
第二个例子还没写完,发哥就叫回宿舍了。
想想也挺好玩的。

interface  IX
{
     virtual void __stdcall xf() = 0;
};
interface IY
{
   virtual void __stdcall yf() = 0;
};
class  CA:public IX,public IY
{
   vritual void __stdcall xf() { cout <<"CA::xf"<<endl;}
   vritual void __stdcall yf() { cout <<"CA::yf"<<endl;}
}

// IX、IY是接口,CA是实现

main()
{
   CA *ca = new CA();
   IX *ix = ca;
   ix->xf();
   IY *iy = ca;
   iy->yf();
}

//看起来还不错,是个好的开始,明天继续努力

posted @ 2006-03-02 01:57 橙子 阅读(132) | 评论 (0)编辑 收藏

偶然看到的签名

因原单位待遇不好,本人下岗已久。现欲开辟第二职业,有意者来电来函咨询,本人承接以下业务:苦力搬运,装卸,车工,钳工,焊工,水电工,瓦工,砸墙,砌墙,筛沙,油漆,通下水道,贴瓷砖, 四六级替考,办证,黑枪,黑车,暗杀,洗钱,要债,割双眼皮,修复处女膜…另:本人长期代写小学生寒,暑假作业.替小学生欺负其他同学(限制5-10岁以内)有意者狂密我.价钱好商量.......

posted @ 2006-02-08 23:11 橙子 阅读(235) | 评论 (2)编辑 收藏

我的桌面

0AB4FE40.jpg

posted @ 2006-01-25 21:24 橙子 阅读(188) | 评论 (0)编辑 收藏

再见乐心

很久没见她了。
第一次见她是在巧巧网吧,我见她在上网,美女、面生,呵呵,凑过就问了QQ。嘿嘿!

第二次见她,我们已经是很好的网友了。江湖人称“机灵小白龙”,并非浪得虚名阿。 
第三次,就是昨天,她回老家过年,路过长沙,拎着大箱子,而我又是这么的热情  ,于是,箱子就让我来拎吧! 乐心和我一样高,不敢并排走,要么走前面,要么走后面(很狡猾的说)。送到西站。她回家的之后给我短信,告诉我平安到家了,深感欣慰,想起我的小女朋友,小女朋友做事总没交代,真是郁闷。

posted @ 2006-01-22 22:12 橙子 阅读(142) | 评论 (0)编辑 收藏

钱包丢了

在118路公交车上。钱包放在外套的口袋,天气冷,穿得多,坏人的手伸到口袋里也没点感觉。
丢了东西始终是件麻烦事,身份证、银行卡、公交卡,挂失,补办,呼~  头大,再加上快过年了。胸闷!

posted @ 2006-01-22 21:49 橙子 阅读(144) | 评论 (0)编辑 收藏

仅列出标题
共2页: 1 2 
<2024年7月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿(10)

随笔分类

随笔档案

相册

收藏夹

搜索

最新评论

阅读排行榜