关于作者

用户名:huhaiqing
笔名:huhaiqing
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



我的日文主页

访问统计:
文章个数:8
评论个数:7
留言条数:4




Powered by BlogDriver 2.1

青海湖之梦

 

文章

青海湖之梦

青海湖之梦

 曾在陕西生活过很多年,却从来没有到过西安以西的西部。一直好想去看一看,看看那传奇的风物,看看那迷人的风景。 
   终于,有了机会。我与两个朋友相约,暑假一起去西北旅游。

   My God!!! 没想到还有和我的博客名字一样的文章,更巧的是我也是陕西人,感受相同,不同的是我出生在青海湖哪片热土上,值得一读。。。


青海湖之梦

作者:佚名 

作者:佚名  曾在陕西生活过很多年,却从来没有到过西安以西的西部。一直好想去看一看,看看那传奇的风物,看看那迷人的风景。
      终于,有了机会。我与两个朋友相约,暑假一起去西北旅游。
本曾是希望与那个人一起去的啊。单单是这样的想法就曾让我憧憬得激动不已。记得多少个深夜,久久不能入睡。记得多少个工作日,无数次地查看Email,看有没有那总会令我兴奋莫名的讯息,哪怕说的仅仅是再平常不过的事情。但谁想得到,仅仅经历了这么短的时间,那个人而今却已经永远成了和我不能相交的平行线,并且告诉我不能和我一起去了。记得我当时装作没事人似的,好象只是笑了笑,遗憾地表示这样太可惜了。我还能说什么?这就算造化弄人了吧!而且毕竟,我已经不再是有了什么事都会激烈得表现在脸上的那个不管不顾的男孩,而是个能看清前因后果顾及自身和他人的男人了。
    这件事发生之后,我曾向自己和朋友保证,这次旅游无论如何我会玩好。
    一个伙伴告诉我说,他的生活就是希望不断发现新的景色;另一个说,他想到广袤的西北去独自面对无人的戈壁荒原。这就算是他们来西北的目的和心愿吧!而我呢?我的心愿是什么?我从来不曾明了。
    所以,西部对我而言,就是这么复杂而模糊的一个梦。而那传奇般的青海湖,更是这梦中之梦,是所有梦中最迷离最深沉的一个。
    古人说过"近乡情怯"。奇怪得很,我也似乎有了这种心情,而且是离青海湖越近,这种情怯就越明显。我是在怕什么呢?我也说不清楚。
离开了西安,接近西宁,火车与浑浊的湟水同行。河岸上白杨树林茂盛而疏朗,两边是夹峙的山峦,红色的土壤山岩上点缀着丛丛灌木。湛蓝的天空,朵朵白云由不高的山巅滚滚而生。典型的西北风光通常会令人心胸开朗,却不曾激动我的欢悦之情。我不禁对自己有些恼火,毕竟这是和朋友一道出来游玩,快乐不仅是一种享受,更是一种义务啊!可不管怎样告诫自己,我的心中总也挥不去那一缕惆怅。
    黄昏到达西宁,这静立在湟水河谷里的高原省会,虽然时值夏末秋初,却凉若深秋。
    入夜走在西宁的大街上,秋月分外澄澈。偶尔停下品尝一下西北的牛羊肉和小吃,喝两口难喝已极的砖茶,两个伙伴欢笑不断。我也打起精神,露出笑脸,时而和他们打一打趣。冷冷的夜风时时吹来拂动衣襟,就如同心里不时袭来的一阵阵寂寥。
    第二天一大早,我们就出发去湟中塔尔寺。一路的颠簸后,终于到了一大片沿山而建的宏伟庙宇。
    一路行去,大金瓦殿辉煌的金顶,深邃幽暗只是在角落里点燃着几盏酥油灯的密宗经院大殿,花殿里树叶婆娑芳香淡淡的菩提树,布幔上绘制的金刚、恶魔和地狱的壁画,浩大繁复的佛像堆绣,精工细致的酥油花......我俨然在神话的境界里心不在焉地漫步。处处不时响起阵阵铙钹钟鼓的声音,这是身穿红色袈裟的喇嘛在举行他们的宗教仪式;远远而来的虔诚的藏族妇女向着绣满藏文经文的黄绸幔不停地顶礼膜拜。四处散发着酥油的气息,弥漫着藏香的青烟。
    一切的一切,色彩、声音、形象、气息,如大河般向我涌来,我却感觉自己象浪涛里的一块黑色礁石一样沉寂。本来应当为这异域的风情而大欢喜赞叹,而我的内心里却没有激荡起一点兴奋的波澜,我更加沉默寡言,仿佛是在不合时宜地冥想。我不禁惊讶地问着自己:"你这到底是怎么了?"
    说好第二天就要去青海湖了,我这才勉强提起了精神,和两个同伴一道忙碌着准备杂乱的行李。
    一夜的雨,次日清晨的天空还是阴霾的,高原上特有的低云呈现出团团铅灰的色块。车行在湟水河谷里,初涨的湟水在我们身边浊浪滚滚地奔涌,时而泛过河岸的杨树,时而没过巨大的砾石。山上整齐而错落有致的树林间,处处点缀着一块或相连的几块油菜花和大麦,绿色、枯黄或者金黄。山势忽然开阔,山顶萦绕着团团云雾,半山腰点点的白花是放牧的绵羊,山脚下宽阔的河谷草岸上马儿和花白奶牛在静谧地吃着草,远处天边的云际现出一道淡蓝的天空和金色的阳光。
    海拔越来越高,天空越来越晴朗,起伏的草坡上,大群的白色山羊和黑色的牦牛低着头在吃草,白云在蓝得透明的天空上触手可及的高度漂浮,太阳显得无比地澄澈。海拔3520米的日月山,据说就是文成公主入藏义无返顾的最后一站。凛冽的寒风从山口急掠而过,令人瑟瑟发抖。我们停下车,信步翻过了两个平缓的山包,正好遇见两个放羊的藏族少年,他们是兄弟俩,看样子还都不到二十岁。他们真是淳朴实在,听说要和我们照相合影,哥哥冒着风把笨重的外套脱了陪了我们半个钟头,直到冻得全身哆嗦。他们还应我们的要求捉来一只绵羊跟我们合影。两个伙伴向他们要了投石的绳子比赛谁能甩得更响。看着他们快乐得象孩子一样,我在一边微笑地看着,我觉得自己真象个孩子们身边的长者,也象个旁观者。
    重新上路,经过倒淌河稍事停留,我们继续进发。司机说,青海湖近了。
    忽然之间,远处天地间现出一带青蓝的颜色。我似乎感觉胸腔"轰"地一震,在脸上面具一样仍然戴着平静的微笑,但几乎掩饰不住内心激动的颤抖。这就是曾无数次想象的青海湖啊,而且每次想象都完全不同!我终于见到了啊。看啊!绿色的山脊,赭石色的山脚,围着一湾蓝绿色的海面。近处是一片片明黄色的油菜花。斑斑剥剥的阳光不规则地从铅色云团的缝隙间洒下来,所到之处,将原本鲜明的颜色染得更加绚丽灿烂。
    从奔驰颠簸的汽车窗口,我忍不住久久凝望。在青海湖帐房宾馆住下后,下午三、四点钟时候,我们向附近的青海湖码头走去。青海的三、四点钟,相当于内地的两点来钟。这时天光虽亮,却显得更加阴霾。
    走上码头的长堤,湖上的大风穿透毛衣的空隙,让人感觉透骨的寒冷。近岸的青色海水撞击在堤下堆垒的大石上而溅出白色的浪花,将人的视线垃向远处海水深情的青蓝色。漫天朵朵铅灰的云彩,有几处雨幕直垂到湖面,远山在云影中显出朦胧的深蓝。几只海鸥、海燕在堤岸间翱翔。我坐在长堤的水泥边缘上,唱起了意大利民歌"回归苏莲托":"看这海洋多么美丽,多么激动人的心情,看着大自然的风景,多么令人陶醉......可是你对我说再见,永远离开你的爱人,永远离开你的家乡,你真忍心不回来?请别抛弃我,别再使我受痛苦,回归苏莲托,请你回来吧!"。唱着唱着,我的喉咙哽咽了。
    码头的工作人员告诉我们,向西约十余公里,有一道地峡直伸入青海湖中叫二郎剑。我们于是决定步行到二郎剑去。
    我远远走在前面,故意拉开和两个伙伴的距离。湖上的风更大了,耳边尽是呼呼的风声,我再也忍不住,终于呜咽地失声而泣。那深藏的哀伤,曾被一重又一重包裹得那么周密,以为能永远不动声色地埋藏下去了,以为能被理性和意志长久地克制了,却不知如何,在这自然美的震撼下溃决了堤坝,终于爆发而出。眼前浮现起那个人的音容笑貌,心里却零零碎碎的尽是令我永远销魂蚀骨的种种片断:最近的电话里谈笑的声音,春日里隔着网络的长短句唱和,还有曾经的相对一笑彼此会心的感觉,混合成真是说不出的滋味。眼泪尽情地奔流而出,在脸颊上划下道道冰凉的水迹。
    几滴雨点打了下来,天色阴霾晦暗。身后远处响起两个伙伴的喊声:"喂!要下雨了!咱们回去吧!"我慌忙擦干泪水,带着愉快的微笑回头向他们喊了句"我一个人去,你们先回去吧",然后转身继续向前走去。他们会怎么想我呢?一定会觉得我有点儿疯狂吧!可是一个人在他的一生中,总归会有那么几次疯狂吧!不出我所料,当我再次转头察看的时候,他们已经不见了。
    独自在无人的海滩上走了很久,疾风将毛衣和牛仔裤吹得泼喇喇地响,掠过头发的时候也发出惊人的"嘶嘶"响声。天上的乌云接连从湖上森然逼来,又向着南面的青山急速地退去。在风送过来的湖上"哗哗"的浪涛声中,那片大的雨云似乎正在向我缓缓飘近。这么大的风,如果浑身淋湿该怎么办啊!何况走出了这么远,四周一片空旷,连个躲风挡雨的地方都没有,我的心里充满着恐惧和焦急。
    令人绝望的狂暴风雨,渐渐在眼前模糊,和那微笑的形象叠加在了一起。天啊!为什么记忆总要如这风雨般令我无处可逃?我用尽全身气力大喊着:"命运啊!这难道就是你给我的一切么?"我真想转身向来路奔去,却知道那完全是徒劳。躲是躲不开的,该面对的终归不得不去面对,人的一生不就是一个又一个的恐惧和苦痛么?当你面对了这恐惧和苦痛,当你克服了它们,也许会令你痛苦得痛不欲生,但你也就超越和重生了。
    一声声的啁啾,是一只小小的海燕在狂风中鸣叫着,奋力地挣扎着不被风吹走。它在我头顶的天空飞翔,陪了我很久,才划过一道优美的弧线向远处掠去。仰头看着它因用力而弯曲的纤弱肢体,我似乎感觉到一股热力从大地输入了我的身体。我默默地对它说:"谢谢你!"
    风更急,偶尔有雨点打在我的脸上,如沙石般作痛,而且立刻就干了。我已经忘记了悲伤,不再流泪,因为全部身心都在抗拒着这惊人的天地之威,只想着能够熬过这苦难的时刻。在湿沙的海滩上,我踉跄地跑着,迎着风边战栗边狂笑着吼叫:"来吧!来吧!来吧......"
    远远的,我看到了几只海鸥在飞翔。越走越近了,在近海的浅滩上,在海岸积雨水的小潭里,有成百只灰白的大海鸥和几十只黑色的鸬鹚在涉水和游泳。它们看到了我的走近,一起展翅飞了起来,在茫茫海天间,在狂飙急雨中,那是多么壮丽的一幅图景!它们划过优雅的弧线,在远处的海滩重新落下休憩。我不禁放慢了脚步。
    就在这时,在山峦般的阴云间,裂开了一个明亮的洞窟,万道眩目的光柱象金色的流苏一样垂下来,照亮了岸上的草坡和近岸的海水,将一道道白浪染成耀眼的银线,将青白色的海水点染成一大片荧光的宝石。远处的天边也露出了一线蓝色的天空,阳光下彻,照得二郎剑长长的沙堤如一条金色的长带。
    我的心激动得难以言宣。在仍然狂骤的风雨中,我高高地向天举起双手,"呵呵嘿"地大叫着,感谢命运女神赐予我的礼物。在她给了我这么多苦痛之后,还有什么是比光明的希望更光彩夺目更美好的礼物?我反复地大叫着那个曾让我魂牵梦绕的名字,我大喊着:"我曾是那么刻骨铭心地爱着你,我曾不敢想象在没有你的爱的日子里我的生命该如何延续,我曾在终于失去你的时候怀疑过,不知道今生该如何摆脱无尽的空虚和悲伤,我曾外表欢乐平和而内心痛苦得抽搐不已。但感谢上天,感谢这一刻!它在给予我了巨大的悲哀后又重让我看到,生活还有这么壮丽的希望。我不会忘记曾经对你的爱,我将永远把它珍藏在心底最珍贵的地方,我会永远祝愿你幸福安康。但我从此将不会总是沉溺在痛苦的泥淖之中,而是无畏于一切的苦痛而含笑面对我的命运,从此真正坦然地去追寻我的幸福、快乐地生活!"我语无伦次地反复大喊着,在这无人的荒野,在这水天风云间,我喊的就是我所想的,我想的就是我所喊的。
    慢慢地,风小了,太阳出来了,那道长久笼罩海面的雨云也向东掠去。不知不觉间,我来到了一个小小的海湾。远远的北方,就是海的那边,一带群山下远处的海面是紫蓝的一线,近些是美得令人心碎的孔雀石的青蓝色,更近是青白色的海水,泛着一道道白色的浪花,沿岸由于海底的岩石,海水呈现出一片紫灰的颜色。刚才的那片雨云,映着阳光,在海面上投下半幅无比美丽的彩虹,如湖水女神美丽的宝带。在岸边,盐碱的作用在陆地上划出一道黄白的线分割着陆地和湖水。再上面,是一带红棕色的草带,那是耐盐碱的草吐出了成熟后红棕色的穗。我站在红棕草带更上面一条飘向远方的绿色丝带上,脚下是低矮柔软的绿色小草。远离海边的地方是一带长长的矮坡延伸向前方,坡上开满白色、浅黄、明黄、紫红色的小花。它们都匍匐在地面,共同铺成一条长长的大花毯,似乎邀请我继续步向前方。
    我痴痴地走着,心里没有一点渣滓,只有满心的赞叹和欢乐,似乎把一切都遗忘。我随手采撷着——紫红的野豌豆花和野葱、黄色的野菊花、带着橙黄色花铃的白头翁和花铃脱落露出白色银丝的白头翁,还有好多浅黄、白色的我叫不上名字的小花。我用地上匍匐的红色细藤将它们扎成一个小小花束。和风吹来,身前身后飘起一阵淡淡的清香。
    风停了,海上浪涛的哗哗声也听不到了,阳光照得身上那么和暖。我的心灵是那么澄澈,刚才还激荡的情绪已消散得无影无踪。
    我向前走着,欢快的步伐象一首歌。我的心里确实也似乎奏起一个快乐而神秘的韵律。我信步走上左边那一带开满小花的草坡。南面露出那起伏的如黛的青山,山下的公路上,偶尔有汽车象小小的甲虫在爬行,北面是寥廓的海面,瞬息变幻着阴晴和颜色。
    慢慢地,阳光又渐渐隐去,乌云笼罩着天空,向地面静静地洒下柔和的白光,仿佛是在我头顶覆盖了一个极大的帐篷。距离二郎剑还有很远,我已经走出了一大半,时间却已不早。我决定是该返回的时候了。        

忽然我想,这手里的花束该怎么办呢?我明白,无论它有多美,多令人迷恋,担我终归无法带走,也无法永远保有,那还不如干脆埋掉!可当我低头看看它多彩的颜色时,心头却一阵不忍。算了,不必强求,记得电影"Jurassic Park"里曾说过:"Life will find its way",还是一切随缘好了。我接着向回走去。
    有意走在长了青草的沙石地上,虽然走了这么远,虽然有些高原反应,我却一点也不感觉疲劳。微风从我身后轻柔地吹来,我的心更加平静。啊,看哪,在来的路上,几头黑色的牦牛,在柔和的晚照中悠闲地徜徉,自在地吃草,在我走近时才向旁边躲避开去。走过它们,当我回头望时,忽然看到西边的天空现出已到宽宽的金色,晚霞如漂浮的金山一样熠熠生光。我不禁笑了。
    我停下来,再看看手里的花束,它依然美丽,却已显出几分憔悴。顺手在路边找块石头,在沙子上挖个坑,我静静把那束野花埋掉。看着它消失在泥沙的下面,我感到几分沉重也有几分轻松,因为这埋掉的,对我而言不仅仅是一个花束,更是一切凄凉而美丽的往昔的东西。"让过去的都过去吧!"我告诉自己。
    回到了宾馆天色刚刚全黑,已经是晚上八点多,两个伙伴告诉我,下午他们一直在宾馆呆着。
    当他们问起我玩得怎么样,我从心里几乎想大笑出来,因为我又能向他们说什么呢?于是只好一言以蔽之地告诉他们,这是我一生见到过的最美丽的景色。我本来曾计划第二天去茶卡盐湖或是孟达天池森林保护区,但这时我告诉他们,我明天就启程回家。他们奇怪地问我为什么,我笑着说,我的心愿已经达成了。
    是啊,曾经不知道我来青海湖的心愿到底是什么。其实即使此时,我还是说不清楚,但我却已经明明白白知道自己的心境是那么的宁静和愉悦,我确信自己的心愿已经实现了,已经没有兴趣再去看什么地方了。但我懂的,他们也懂么?即使他们也能懂我所懂的,我真地愿意明明白白地把它说出来么?
    第二天早上,两个伙伴很早起来跑出去,说是要看青海湖的日出,却把我留在宾馆里,也算是对我昨天独自行动的报复吧,*_^。忽然,房间亮起来了,我赤膊爬起床,趴在房间的窗户上铁栏杆上向东方张望。从狭小的窗口望去,东边的群山上,一带黑色的云后面,已显出一片金色。猛然间,一道绚烂的金边露了出来。这金色的面积越来越大,成了一个金色的圆盘。海面上也明朗起来,泛起闪闪的金光。最后,扁圆的太阳终于喷薄而出了,我的心头不禁浮现出这样的诗句:"时序女神的神光,吹响它嘹亮的金色号角。"
    今天是个晴朗的天气,大片没有瑕疵的蓝色天空上,飘着朵朵千姿百态的白云。心怀是那么开阔,这才是高原最典型的风光。两个伙伴听我说了湖上的彩虹而艳羡不已,决定沿着我昨天走过的路再走一遍,我却要和他们分开,搭乘格尔木到西宁的汽车回去了。
    坐在汽车上,看着青蓝色的青海湖迎着太阳金光粼粼,却不再有昨天那丰富变幻的颜色,我笑了。想来,两个伙伴今天一定会玩得很好很尽兴吧!但今天的青海湖,已经不是我昨天见到的我的青海湖了。想到这里,笑容爬上了我的嘴角,我的心里升起一种秘密的快意。
    青海湖渐渐远去了,你曾经是我的一个心愿、一个梦,但你在我梦中出现的时候,却曾是含糊和灰色的,因为那时我从来没有象现在这样见过你、触摸过你、在你的风雨下洗礼。记得曾听人说,青海湖在藏文里的名字翻译过来,就是"青蓝色的湖泊"。所以,从此以后,也许哪个不经意的深夜,我还会梦到你,不过,你将不再是灰色,而会是那瞬息变幻的光影,是那阳光下和暖的草坡,是那安详睡在沙子里的小花束,是那低垂到湖上的彩虹,是那狂风中奋力挣扎的小海燕和成群翱翔的海鸥鸬鹚,是我心底里最最青蓝的那片湖泊。

- 作者: huhaiqing 2004年12月17日, 星期五 12:57  回复(0) |  引用(0) 加入博采

vc编程中的20点小笔记

1、异常处理 try {} catch(Ex& exc){},建议最后加入catch(...){}处理可能没有预计到的错误
2、模板的成员函数不能是虚函数【没有完全明白,学习中】
3、定义一个不修改变量的成员函数时候,定义为const成员函数是一个好办法

4、如果一个类作为其他类的基类,析构函数应该是virtual,这样可以支持RTTI,和对象析构时候可以执行正确地析构函数


5、颇通的函数名隐式的转换为函数的地址,但成员函数需要如此调用&A::Func();
6、注意I++,和++i的区别,前者是先用后加,后者是先加后用
7、逗号分割表达式,如【while (++i,--J,dRecored.eof,sRecord.bof){}】
8、两个类互为成员函数的时候。1.提前声明一个类。2.被提前声明的类在另外一个类中只能声明外指针或者引用。
9、所有成员函数都缺省为内联函数,编译器根据函数的复杂度来确定是否将函数编译成为非内联函数,如果强制声明非内联函数,该如下:#pragma auto_inline;
10、全局变量声明:【声明文件】int i; 【使用文件】 extern int i;
11、内联函数的声明必须是在函数实现的地方声明,而不是在函数定义的地方
12、inlude "windows.h" 和include 的区别在于寻找文件的顺序不同前者是现在当前目录下寻找文件,没有的化再去编译器定义的路径寻找后者相反,先找编译器定义的路径,在回到当前目录查找
13、如何将一个CString类型的变量转换为Int类型 int xx = atoi(CString mm);
14、_T()自动将()内字符串转成unicode or Multibyte-character or SBCS (ASCII) 根据系统宏定义
15、将字符串的末尾空格去掉,str.TrimRight();
16、CTime time = CTime::GetCurrentTime(); 取得当前时间还可以用CTime::Format函数将CTime对象转换为字符串对象使用GetSystemTime()这个API函数得到系统时间
17、给控件设置焦点的两个方法
     1.变量 m_edit1.SetFocus();
     2.控件ID GetDlgItem(IDC_EDIT1)->SetFocus();
18、AppWizard所产生的STDAFX文件是干什么用的,它主要是协助产生预编译头文件的。通常你是不需要修改它的。
19、MessageBox函数来自CWnd类,所以你只能在从CWnd继承的类(如CView)中调用它。但是,MFC也提供了AfxMessageBox函数,你可以在任何地方调用它。
20、虚拟函数PreCreateWindow是干什么用的:PreCreateWindow允许你在调用CreateWindow之前来改变窗口属性

 

- 作者: huhaiqing 2004年12月10日, 星期五 16:57  回复(0) |  引用(0) 加入博采

VC中如何改变对话框中控件的颜色

问题:在VC中,当我们大量的运用控件时,往往会为改变控件的颜色所烦恼。因为VC不象VB那样,可以方便地改变对话框及各个控件的颜色,要改变一个控件的颜色比较烦琐。那么,VC中怎样改变控件的颜色。

思路:在控件显示之前,每一个控件会向父对话框发送一个WM_CTLCOLOR消息,这个消息缺省处理函数CWnd::OnCtlColor返回一个HBRUSH类型的句柄,这样,就可以设置前景和背景文本颜色,并为控件或者对话框的非文本区域选定一个刷子。


实现:

---- ① 先创建一个基于对话框的工程,命名为test,然后在对话框上加入一个ListBox控件。

---- ② 在testDlg.h中加入一个成员变量:HBRUSH m_hbrush;

---- ③ 在OnInitDialog()中,加入m_hbrush=CreateSolidBrush(RGB(0,0,0);此处设置的RGB值可以改变ListBox的背景色。为了观看ListBox中字的颜色变化,我们给ListBox加入几个字:利用Class Wizard给ListBox加入一个Control类型的成员变量m_ctrlListBox,然后在OnInitDialog()加入如下所示的代码:

m_ctrlListBox.AddString("第一行");
m_ctrlListBox.AddString("第二行");

---- ④ 点击Class Wizard,给testDlg加入WM_CTLCOLOR事件,单击Edit Code按钮,然后把改函数的内

容替换为如下代码:

if(nCtlColor== CTLCOLOR_LISTBOX)
{
pDC- >SetBkMode(TRANSPARENT);
//此处设置字体的颜色
pDC- >SetTextColor(RGB(255,255,255));

return m_hbrush;
}
else
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

---- 现在编译并运行改程序,可以看到列表框已经变成黑色而其中的字已经变为白色了

- 作者: huhaiqing 2004年12月10日, 星期五 16:52  回复(0) |  引用(0) 加入博采

VC常见入门问题总结

1:fatal error C1010: unexpected end of file while looking for precompiled header directive该如何解决?
     如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的Settings,选择C/C++选项卡,从Category组合框中选中Precompiled Headers,选择Not Using Precompiled headers。确定如果发生错误的文件原本是该工程中的,则检查该文件头部有没有#include "stdafx.h"语句,没有的话添加。
     如果还不行,也有可能是定义的类或结构体等最后忘了加分号,注意一下。


    2:fatal error RC1015: cannot open include file 'afxres.h'.该如何解决#include "afxres.h"语句是在.rc文件中的,而afxres.h文件在VC的安装目录中的.VC98MFCINCLUDE目录中,所以着重查一下Tools菜单中Options对话框中的Directories中的包括文件的路径是否正确,是否在VC的安装路径中,不是的话,改过来,如果这方面没问题,则到其他机器中拷贝afxres.h到相应的目录中。
    3:Dll分配的内存块,应用程序释放,结果报异常。
     用GlobalAlloc()代替new, 用GlobalFree() 代替delete就不会出错了
     其实还有一个办法,就是把dll的Settings的C/C++选项卡的Code Generation的Use Run-time liberary改成Debug Multithreaded DLL,在Release版本中改成Multithreaded DLL,就可以直接使用new和delete了,没问题
     比较规范点的做法一般是DLL分配的内存由DLL释放。在DLL中加一个函数释放内存不是更好吗。
    4:发现打印预览的图形明显比屏幕显示图形小,怎么办?
     这多半是CDC映射模式的选择引起的,缺省状态下,选择的是MM_TEXT模式,MM_TEXT以设备的像素点为单位,而不同设备的像素点的大小不同,打印机的分辨率比显示器要高很多,所以导致同样图形在打印时候变小。解决之道是统一使用其他定长的映射模式,比如MM_HIMETRIC等等(CDC::SetMapMode()改变映射模式)
    5:CString、char*、string、int、_bstr_t、CTime、COleDateTime等等的相互转换,如何判断一个字符串是一个浮点数?
    
    #include
    using namespace std;
    #include
    
    {
     CString strCString="ABC";
     char strchar[256],*pstr;
    
     pstr=(LPSTR)(LPCTSTR)strCString; //CString---->char*
     strcpy(strchar,(LPSTR)(LPCTSTR)strCString); //CString---->char[]
    
     _bstr_t strbstr=pstr; //char*---->_bstr_t
     WCHAR *strWCHAR=strbstr; //b_str_t--->UNICODE
    
     strbstr=strWCHAR;
     pstr=strbstr; //UNICODE---->char*
    
     strCString="10";
     int istr=atoi((LPSTR)(LPCTSTR)strCString); //CString、char[]、char*------>int
     strCString.Format("%d",istr); //int----->CString
     sprintf(strchar,"%d",istr); //int----->char[]
    
     pstr=new char[256]; //字符串申请空间
     strcpy(pstr,"ABC"); //字符串赋值
     delete []pstr; //字符串释放
    
     string strstring="ABC";
     pstr=(char*)strstring.c_str(); //string---->char*
    
     strCString="2003-10-27 6:24:37"; //CString--->COleDateTime
     COleVariant vtime(strCString);
     vtime.ChangeType(VT_DATE);
     COleDateTime time4=vtime;
    
    
    
     COleDateTime time1(1977,4,16,2,2,2); //COleDataTime--->CTime
     SYSTEMTIME systime;
     VariantTimeToSystemTime(time1, &systime);
     CTime tm(systime);
    
     time_t time2=tm.GetTime(); //CTime--->time_t
     COleDateTime time3(time2); //time_t--->COleDateTime
    
     //判断字符串是否是某种类型
     CString sValue("123.1");
     COleVariant vValue(sValue);
    
     BOOL bStrIsFloat = (SUCCEEDED(VariantChangeType(&vValue, &vValue, 0, VT_R8)) &&

sValue.Find('.') != -1);
     if(bStrIsFloat)
     {
     AfxMessageBox("浮点");
     }
    }
    
    6:如何建立一个UNICODE应用程序?
    
    建立一个应用程序,打开Alt+F7 settings选项,选择C/C++选项卡,在Preprocessor definenation中加上_UNICODE,在Link选项卡中,在Category选择框中选择Output,在Entry-point symbol编辑框中,添加wWinMainCRTStartup确定。
    
    注意调试UNICODE程序时,需要在安装时VC选择所有选项,否则会缺少动态库和相应的.lib文件
    
    
    7:ADO操作数据库表,更新出现问题
    在打开数据库前,添加如下语句试一下pRecordSet->CursorLocation = adUseClient

- 作者: huhaiqing 2004年12月10日, 星期五 16:41  回复(0) |  引用(0) 加入博采

理解VC工程

理解VC工程

  Visual C++作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。在使用Visual C++开发应用程序的过程中,系统为我们生成了大量的各种类型的文件,在本节中将要详细介绍Visual C++中这些不同类型的文件分别起到什么样的作用,在此基础上对Visual C++如何管理应用程序所用到的各种文件有一个全面的认识。


  首先要介绍的是扩展名为dsw的文件类型,这种类型的文件在VC中是级别最高的,称为Workspace文件。在VC中,应用程序是以Project的形式存在的,Project文件以.dsp扩展名,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理。与dsw类型的Workspace文件相配合的一个重要的文件类型是以opt为扩展名的文件,这个文件中包含的是在Workspace文件中要用到的本地计算机的有关配置信息,所以这个文件不能在不同的计算机上共享,当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动地创建一个与之配合的包含本地计算机信息的opt文件。

  上面提到Project文件的扩展名是dsp,这个文件中存放的是一个特定的工程,也就是特定的应用程序的有关信息,每个工程都对应有一个dsp类型的文件。以clw为扩展名的文件是用来存放应用程序中用到的类和资源的信息的,这些信息是VC中的ClassWizard工具管理和使用类的信息来源。

  对应每个应用程序有一个readme.txt文件,这个文件中列出了应用程序中用到的所有的文件的信息,打开并查看其中的内容就可以对应用程序的文件结构有一个基本的认识。

  在应用程序中大量应用的是以h和cpp为扩展名的文件,以h为扩展名的文件称为头文件。以cpp为扩展名的文件称为实现文件,一般说来h为扩展名的文件与cpp为扩展名的文件是一一对应配合使用的,在h为扩展名的文件中包含的主要是类的定义,而在cpp为扩展名的文件中包含的主要是类成员函数的实现代码。

  在应用程序中经常要使用一些位图、菜单之类的资源,VC中以rc为扩展名的文件称为资源文件,其中包含了应用程序中用到的所有的windows资源,要指出的一点是rc文件可以直接在VC集成环境中以可视化的方法进行编辑和修改。

  最后要介绍的是以rc2为扩展名的文件,它也是资源文件,但这个文件中的资源不能在VC的集成环境下直接进行编辑和修改,而是由我们自己根据需要手工地编辑这个文件。

  对于以ico,bmp等为扩展名的文件是具体的资源,产生这种资源的途径很多。使用rc资源文件的目的就是为了对程序中用到的大量的资源进行统一的管理。

- 作者: huhaiqing 2004年12月10日, 星期五 16:36  回复(0) |  引用(0) 加入博采

VC 常用数据类型总结
ATOM 原子(原子表中的一个字符串的参考)
BOOL 布尔变量
BOOLEAN 布尔变量
BYTE 字节(8位)
CCHAR Windows字符
CHAR Windows字符
COLORREF 红、绿、蓝(RGB)彩色值(32位)
Const 变量,该变量的值在执行期间保持为常量
.......

VC 常用数据类型总结

ATOM 原子(原子表中的一个字符串的参考)
BOOL 布尔变量
BOOLEAN 布尔变量
BYTE 字节(8位)
CCHAR Windows字符
CHAR Windows字符
COLORREF 红、绿、蓝(RGB)彩色值(32位)
Const 变量,该变量的值在执行期间保持为常量
CRITICAL_SECTION 临界段对象
CTRYID 国名标识符
DLGPROC 指向一个对话框过程的指针
DWORD 双字(32位)
ENHMFENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举增强的元文件记录
ENUMRESLANGPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举资源语言。
ENUMRESNAMEPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举资源名称。
ENUMRESTYPEPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举资源类型。
FARPROC 指向一个回调函数的指针
FLOAT 浮点变量
FMORDER 32位字体映射值的数组
FONTENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举字体
GOBJENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举图形设备接口(GDI)对象
HACCEL 加速键表句柄
HANDLE 对象的句柄
HBITMAP 位图句柄
HBRUSH 画刷句柄
HCONV 动态数据交换(DDE)会话句柄
HCONVLIST DDE 会话句柄
HCURSOR 光标句柄
HDC 设备描述表(DC)句柄
HDDEDATA DDE 数据句柄
HDLG 对话框句柄
HDWP 延期窗口位置结构句柄
HENHMETAFILE 增强原文件句柄
HFILE 文件句柄
HFONT 字体句柄
HGDIOBJ GDI 对象句柄
HGLOBAL 全局内存块句柄
HHOOK 钩子句柄
HICON 图标句柄
HINSTANCE 实例句柄
HKEY 登记关键字句柄
HLOCAL 局部内存块句柄
HMEMU 菜单句柄
HMETAFILE 元文件句柄
HMIDIIN 乐器的数字化接口(MIDI)输入文件句柄
HMIDIOUT MIDI 输出文件句柄
HMMIO 文件句柄
HOOKPROC 指向一个应用程序定义的钩子函数的指针
HPALETTE 调色板句柄
HPEN 画笔句柄
HRGN 域句柄
HRSRC 资源句柄
HSZ DDE 字符串句柄
HWAVEIN 波形输入文件句柄
HWAVEOUT 波形输出文件句柄
HWINSTA 工作站句柄
HWND 窗口句柄
INT 符号整数
LANGID 语言标识符
LCID 所在国(Locale)标识符
LCTYPE 所在国类型
LINEDDAPROC 指向一个回调函数的指针,该回调函数处理行坐标
LONG 32位符号整数
LP 指向一个以"NULL"结束的Unicode(TM)字符串的指针
LPARAM 32位消息参数
LPBOOL 指向一个布尔变量的指针
LPBYTE 指向一个字节的指针
LPCCH 指向一个Windows字符常量的指针
LPCCHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPCFHOOLPROC 指向一个应用程序定义的钩子函数的指针
LPCH 指向一个Windows字符的指针
LPCOLORREF 指向一个COLORREF值的指针
LPCRITICAL_SECTION 指向一个临界段对象的指针
LPCSTR 指向一个以"NULL"结束的WINDOWS字符串常量的指针
LPCTSTR 指向一个以"NULL"结束的Unicode或Windows字符串常量的指针
LPCWCH 指向一个以"NULL"指向一个以"NULL"结束的Unicode字符常量的指针
LPCWSTR 指向一个以"NULL"指向一个以"NULL"结束的Unicode字符串常量的指针
LPDWORD 指向一个无符号双字(32位)的指针
LPFRHOOLPROC 指向一个应用程序定义的钩子函数的指针
LPHANDLE 指向一个句柄的指针
LOHANDLER_FUNCTION 指向一个处理程序函数的指针
LPHWAVEIN 指向一个波形输入文件句柄的指针
LPHWAVEOUT 指向一个波形输出文件句柄的指针
LPINT 指向一个符号整数的指针
LPLONG 指向一个符号长整数(32位)的指针
LPOFNHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPPRINTHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPSETUPHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPTSTR 指向一个以NULL结束的Unicode或Windows字符串的指针
LRESULT 消息处理的符号结果
LPVOID 指向任何类型的指针
LPWSTR 指向一个以"NULL"结束的Unicode字符串的指针
LUID 局部唯一的标识符
MCIDEVICEID 媒体控制接口(MCI)设备标识符
MFENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举元文件记录
MMRESULT 多媒体消息的处理结果
NPSTR 指向一个以"NULL"结束的Windows字符串的指针
NWPSTR 指向一个以"NULL"结束的Unicode字符串的指针
PBOOL 指向一个布尔变量的指针
PBYTE 指向一个字节的指针
PCCH 指向一个Windows字符常量的指针
PCH 指向一个Windows字符的指针
PCHAR 指向一个Windows字符的指针
PCRITICAL_SECTION 指向一个临界段对象的指针
PCSTR 指向一个以"NULL"结束的Windows字符串常量的指针
PCWCH 指向一个Unicode字符常量的指针
PCWSTR 指向一个以"NULL"结束的Unicode字符串常量的指针
PDWORD 指向一个无符号双字的指针
PFLOAT 指向一个浮点变量的指针
PFNCALLBACK 指向一个回调函数的指针
PHANDLE 指向一个句柄的指针
PHANDLER_ROUTINE 指向一个处理程序的指针
PHKEY 指向一个登记关键字的指针
PINT 指向一个符号整数的指针
PLONG 指向一个符号长整数的指针
PLUID 指向一个局部唯一的表示符(LUID)的指针
PROPENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举窗口特征
PSHORT 指向一个符号短整数的指针
PSID 指向一个加密标识符(SID)的指针
PSTR 指向一个以"NULL"结束的Windows字符串的指针
PSZ 指向一个以"NULL"结束的Windows字符串的指针
PTCH 指向一个Windows或Unicode字符的指针
PTCHAR 指向一个Windows或Unicode字符的指针
PTSTR 指向一个以"NULL"结束的Windows或Unicode字符串的指针
PUCHAR 指向一个无符号Windows字符的指针
PUINT 指向一个无符号整数的指针
PULONG 指向一个无符号长整数的指针
PUSHORT 指向一个无符号短整数的指针
PVOID 指向任何类型的指针
PWCH 指向一个Unicode字符的指针
PWCHAR 指向一个Unicode字符的指针
PWORD 指向一个无符号字的指针
PWSTR 指向一个以"NULL"结束的Unicode字符串的指针
REGSAM 登记关键字的加密掩码
SC_HANDLE 服务句柄
SERVICE_STATUS_HANDLE 服务状态值句柄
SHORT 短整数
SPHANDLE 指向一个句柄的指针
TCHAR Unicode或Windows字符
TIMERPROC 指向一个应用程序定义的定时器回调函数的指针
UCHAR 无符号Windows字符
UINT 无符号整数
ULONG 无符号长整数
USHORT 无符号短整数
VOID 任何类型
WCHAR Unicode字符
WNDENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举窗口
WNDPROC 指向一个应用程序定义的窗口过程的指针
WORD 无符号字(16位)
WPARAM 32位消息参数
YIELDPROC 指向一个输出回调函数的指针

- 作者: huhaiqing 2004年12月8日, 星期三 22:38  回复(2) |  引用(0) 加入博采

如何解决(NTDLL.DLL):0XC0000005:Access Violation!

今天遇到难题了,在自己的QA系统中想加入一个音声识别的功能,这是别人提供的现成的程序代码,编译和连接都没有问题,但是无论如何都过不了一道难关:(NTDLL.DLL):0XC0000005:Access Violation!

不知哪位高手能指点一二,最近确实太忙了,没有多少时间了。


 解决了,解决方法:

怀疑,自信,坚持,多问,过程的煎熬。。。。。不知不觉成了

原来,数据库的文件夹没有放在当前文件夹中,可笑可悲,害的我找了一个星期,动用了几大高手。。。

MFC之所以找不到问题所在,是因为错误执行出在动态链接库LIB中。

看来:(NTDLL.DLL):0XC0000005:Access Violation!不可怕!

 

- 作者: huhaiqing 2004年12月8日, 星期三 22:11  回复(4) |  引用(0) 加入博采

VC中的后缀

.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。
.BMP:位图资源文件。
.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source    brower的话就必须有这个文件。可以在project options里去掉Generate Browse Info File,这样可以加快编译进度。
.C:用C语言编写的源代码文件。
.CLW:ClassWizard生成的用来存放类信息的文件。classwizard信息文件,ini文件的格式.......


VC中的后缀

 

.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。
.BMP:位图资源文件。
.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate Browse Info File,这样可以加快编译进度。
.C:用C语言编写的源代码文件。
.CLW:ClassWizard生成的用来存放类信息的文件。classwizard信息文件,ini文件的格式。
.CNT:用来定义帮助文件中"Contents"的结构。
.CPP或.CXX:用C++语言编写的源代码文件。
.CUR:光标资源文件。
.DEF:模块定义文件,供生成动态链接库时使用。
.DLG:定义对话框资源的独立文件。这种文件对于VC工程来说并非必需,因为VC一般把对话框资源放在.RC资源定义文件中。
.DSP:VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。项目文件,文本格式。
.DSW:VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中。工作区文件,与.dsp差不多。
.EXP:由LIB工具从DEF文件生成的输出文件,其中包含了函数和数据项目的输出信息,LINK工具将使用EXP文件来创建动态链接库。只有在编译DLL时才会生成,记录了DLL文件中的一些信息。
.H、.HPP或.HXX:用C/C++语言编写的头文件,通常用来定义数据类型,声明变量、函数、结构和类。
.HLP:Windows帮助文件。
.HM:在Help工程中,该文件定义了帮助文件与对话框、菜单或其它资源之间ID值的对应关系。
.HPJ:由Help Workshop生成的Help工程文件,用来控制Help文件的生成过程。
.HPG,生成帮助的文件的工程。
.ICO:图标资源文件。
.ILK:连接过程中生成的一种中间文件,只供LINK工具使用。
.INI:配置文件。
.LIB:库文件,LINK工具将使用它来连接各种输入库,以便最终生成EXE文件。
.LIC:用户许可证书文件,使用某些ActiveX控件时需要该文件。
.MAK:即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程,VC6把MAK文件转换成DSP文件来处理。
.MAP:由LINK工具生成的一种文本文件,其中包含有被连接的程序的某些信息,例如程序中的组信息和公共符号信息等。执行文件的映像信息记录文件。
.MDP:旧版本的项目文件,相当于.dsp
.NCB:NCB是"No Compile Browser"的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成。无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。
.OBJ:由编译器或汇编工具生成的目标文件,是模块的二进制中间文件。
.ODL:用对象描述语言编写的源代码文件,VC用它来生成TLB文件。
.OLB:带有类型库资源的一种特殊的动态链接库,也叫对象库文件。
.OPT:VC开发环境自动生成的用来存放WorkSpace中各种选项的文件。工程关于开发环境的参数文件。如工具条位置信息等。
.PBI、.PBO和.PBT:由VC的性能分析工具PROFILE生成并使用的三种文件。
.PCH:预编译头文件,比较大,由编译器在建立工程时自动生成,其中存放有工程中已经编译的部分代码,在以后建立工程时不再重新编译这些代码,以便加快整个编译过程的速度。
.PDB:程序数据库文件,在建立工程时自动生成,其中存放程序的各种信息,用来加快调试过程的速度。记录了程序有关的一些数据和调试信息。
.PLG:编译信息文件,编译时的error和warning信息文件。
.RC:资源定义文件。
.RC2:资源定义文件,供一些特殊情况下使用。
.REG:注册表信息文件。
.RES:二进制资源文件,资源编译器编译资源定义文件后即生成RES文件。
.RTF:Rich Text Format(丰富文本格式)文档,可由Word或写字板来创建,常被用来生成Help文件。
.SBR:VC编译器为每个OBJ文件生成的原始浏览信息文件,浏览信息维护工具(BSCMAKE)将利用SBR文件来生成BSC文件。
.TLB:OLE库文件,其中存放了OLE自动化对象的数据类型、模块和接口定义,自动化服务器通过TLB文件就能了解自动化对象的使用方法。
.WAV:声音资源文件。

- 作者: huhaiqing 2004年12月8日, 星期三 11:44  回复(1) |  引用(0) 加入博采