戚包纸de剑

启动mysql服务脚本.bat

@echo off

@echo Don't close, please wait!

:begin


cd C:\Program Files\MySQL\MySQL Server 5.6\bin

net stop mysql56

net start mysql56

pause


:end


修改oracle时间

UPDATE Table SET Time = Time + 1 --to_date('2016-02-17 08:00:00','YYYY-MM-DD HH24:MI:SS')

SQL语句多表更新示例

-- sqlserver多表更新语法

UPDATE a SET a.xx = b.xx, a.xxx = b.xxx FROM a,b WHERE a.xxxxxx = b.xxxxxxx


-- mysql多表更新语法 

UPDATE a,b SET a.xx = b.xx, a.xxx = b.xxx WHERE a.xxxxxx = b.xxxxxxx


-- oracel多表更新语法

UPDATE a set (a.xx, a.xxx) = (select b.xx, b.xxx from b where a.xxxxxx = b.xxxxxxx)


http://my.csdn.net/longhuahaha

http://my.csdn.net/longhuahaha

c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目

1.ActiveX的基本概念

         ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。。。

         ActiveX控件的后缀名是OCX或者DLL。一般是以OCX和动态库共存的形式打包成cab或者exe的文件放在服务器上,客户端下载后运行安装cab或exe解压成OCX和动态库共存的文件,然后注册ocx文件。

         ActiveX控件是基于com标准,使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序,此外ActiveX一般具有界面。

 

2.三个概念:ActiveX、OLE和COM

        从时间的角度讲,OLE是最早出现的,然后是COM和 ActiveX;从体系结构角度讲,OLE和ActiveX是建立在COM之上的,所以COM是基础;单从名称角度讲,OLE、ActiveX是两个商标名称,而COM则是一个纯技术名词,这也是大家更多的听说ActiveX和OLE的原因。COM是应OLE的需求而诞生的,所以虽然COM是OLE的基础,但OLE的产生却在COM之前。COM的基本出发点是,让某个软件通过一个通用的机构为另一个软件提供服务。ActiveX最核心的技术还是COM。ActiveX和OLE的最大不同在于,OLE针对的是桌面上应用软件和文件之间的集成,而 ActiveX则以提供进一步的网络应用与用户交互为主。COM对象可以用C++、Java和VB等任意一种语言编写,并可以用DLL或作为不同过程工作的执行文件的形式来实现。使用COM对象的浏览器,无需关心对象是用什么语言写的,也无须关心它是以DLL还是以另外的过程来执行的。从浏览器端看,无任何区别。这样一个通用的处理技巧非常有用。

 

3.ActiveX控件工程的创建

       使用VS2010有两种方式可以创建ActiveX工程,

第一种:创建“MFC ActiveX 控件”工程;

第二种:创建“ATL 项目”。由于使用ATL开发ActiveX控件需要了解com技术,对程序员的要求也较高,开发时间也较长,所以如果ActiveX只在windows操作系统下运行,那么就使用“MFC ActiveX 控件”工程来快速建立ActiveX控件。但是这里要注意了:使用“MFC ActiveX 控件”工程来快速建立ActiveX控件,他不仅要建立在windows操作系统下,还必须在windows操作系统下安装c++依赖库安装包,因为MFC是建立在微软的c++动态库的基础上的。所以这两种方式各有优缺点,根据项目需求来选择适合的方式。

 

4.使用VS2010创建MFC ActiveX工程项目步骤

         由于使用ATL进行ActiveX工程的创建难度比较大,所以这里先使用“MFC ActiveX 控件”工程来创建一个简单的ActiveX控件。

       第一:新建项目-》选择“MFC ActiveX 控件”工程,给项目命名TestMfcAtlDebug,点击确定,弹出“控件向导”对话框

        第二:在概述,应用程序设置,控件名称和控件设置都可以选择默认,然后点击“完成”,这样“MFC ActiveX 控件”工程创建完成

 

5.分析“MFC ActiveX 控件”工程的三个重要的类以及对外接口定义文件idl

使用向导创建完工程可以看到自动生成了三个类,TestMfcAtlDebug,TestMfcAtlDebugCtrl和TestMfcAtlDebugPropPage

可以打开上面三个类的头文件及cpp文件,发现它们都是派生类。

TestMfcAtlDebug:cpp文件中定义了DllRegisterServer和DllUnregisterServer,可以发现ActiveX的注册和反组册都与该类有关。

TestMfcAtlDebugCtrl:可以发现该头文件中声明了消息映射(让ActiveX控件程序可以接受系统发送的事件通知,如窗体创建和关闭事件),调度映射(让外部调用程序(包含ActiveX的容器)可以方便地访问ActiveX控件的属性和方法),事件映射(让ActiveX控件可以向外部调用程序(包含ActiveX的容器)发送事件通知)。也就是说对ActiveX控件的窗口操作都将在这个类中完成,包括ActiveX控件的创建,重绘,以及在此类中创建可视MFC窗体。

TestMfcAtlDebugPropPage:显示ActiveX控件的属性页的

 

让我们来看看最重要的部分:对外接口定义文件TestMfcAtlDebug.idl,代码如下:

[cpp] view plaincopyprint?

  1. #include <olectl.h>  

  2. #include <idispids.h>  

  3.   

  4. [ uuid(69EE37F4-8B36-495F-9F60-5E3AAF2FB494), version(1.0),  

  5.   control ]  

  6. library TestMfcAtlDebugLib  

  7. {  

  8.     importlib(STDOLE_TLB);  

  9.   

  10.     //  CTestMfcAtlDebugCtrl 的主调度接口  

  11.     [   

  12.         uuid(6B60346D-5CCD-4907-83F4-51938558A9B7)    

  13.     ]  

  14.     dispinterface _DTestMfcAtlDebug  

  15.     {  

  16.         properties:  

  17.         methods:  

  18.   

  19.             [id(DISPID_ABOUTBOX)] void AboutBox();  

  20.     };  

  21.   

  22.     //  CTestMfcAtlDebugCtrl 的事件调度接口  

  23.   

  24.     [   

  25.         uuid(E26ECC46-9BA2-4C25-A4DD-A690560A5113)    

  26.     ]  

  27.     dispinterface _DTestMfcAtlDebugEvents  

  28.     {  

  29.         properties:  

  30.             //  事件接口没有任何属性  

  31.   

  32.         methods:  

  33.     };  

  34.   

  35.     //  CTestMfcAtlDebugCtrl 的类信息  

  36.     [  

  37.         uuid(DD0CF7EF-A181-428C-B5FC-C44A1C13CA43)  

  38.     ]  

  39.     coclass TestMfcAtlDebug  

  40.     {  

  41.         [default] dispinterface _DTestMfcAtlDebug;  

  42.         [default, source] dispinterface _DTestMfcAtlDebugEvents;  

  43.     };  

  44.   

  45. };  

这个就是对外接口定义文件,如果外部程序想要调用ActiveX的方法,属性以及在注册表注册的classid(WEB网页调用需要使用),就必须了解这个文件,这个文件可以分为四个部分来看:

首先是TestMfcAtlDebug.Lib这个库信息

这个就不做详解

第二部分是调度映射的接口信息,该接口信息包含了属性(如控件背景色)和对外方法

里面定义了一个方法AboutBox(),该方法就可以被外部程序调用,在该接口里定义的函数都是纯虚函数,这些函数的实现都是在TestMfcAtlDebugCtrl中完成的,MFC通过底层的封装,让TestMfcAtlDebugCtrl类继承这个接口,实现函数。

第三部分是事件映射的接口信息

第四部分是类的信息,其中uuid就是ActiveX控件注册到注册表的classid,它是ActiveX注册后在系统内的唯一标识,WEB网页就是使用这个ID加载ActiveX控件的

 

6.定义调度映射和事件映射方法,提供给外部调用者使用
那么怎么定义新的调度映射和事件映射方法呢,如果手动定义很不方便,当然使用编译器进行定义,步骤是打开类视图:

可以看到TestMfcAtlDebugLib中有_DTestMfcAtlDebug和_DTestMfcAtlDebugEvents,在_DTestMfcAtlDebug项中可以右键-》添加方法(或属性),该操作是完成调度映射的方法和属性的添加;在_DTestMfcAtlDebugEvents项中可以右键-》添加方法(或属性),该操作是完成事件映射的方法和属性的添加。

举个例子,如果要添加一个调度映射的方法Fuck2(),使得外部可以调用:

在_DTestMfcAtlDebug项中可以右键-》添加方法,设置框

填写完信息后点击完成,外部就可以调用方法Fuck2,同时ActiveX控件项目代码的内部将会在三个文件中新增代码:

1.在

2.在

3.在

 

7.注册ActiveX控件

按照上面的步骤已经完成简单ActiveX控件(无窗体界面的控件)的编写,重新生成后会在Debug下生成一个TestMfcAtlDebug.ocx的文件,使用windows的dos窗口可以注册这个ActiveX控件

步骤:

首先win+R键打开运行,然后输入注册命令:regsvr32  c:\.......\TestMfcAtlDebug.ocx(反注册命令:regsvr32  c:\.......\TestMfcAtlDebug.ocx -u)

有两种情况会导致控件注册失败:

第一种:使用非Administrator用户登入系统会由于权限不足而无法注册com组件,这时候就必须使用Administrator用户登入操作系统

第二种:ActiveX控件所依赖的dll库被程序给占用,就会导致注册失败,解决办法是将正在运行的程序关闭就可以

 

 8.测试ActiveX控件的方法

按照上面的步骤已经完成ActiveX控件的编写,也将这个控件注册成功了,那么怎么测试这个控件呢,有三种方式:

第一种:使用html网页来测试

在TestMfcActiveX.htm的文件中编写代码如下:

[html] view plaincopyprint?

  1. <HTML>  

  2. <HEAD>  

  3. <TITLE>Test ActiveX</TITLE>  

  4. </HEAD>  

  5. <OBJECT ID="TestMfcAtl Control" WIDTH=528 HEIGHT=545 classid="CLSID:DD0CF7EF-A181-428C-B5FC-C44A1C13CA43">  

  6.     <PARAM NAME="_Version" VALUE="65536">  

  7.     <PARAM NAME="_ExtentX" VALUE="12806">  

  8.     <PARAM NAME="_ExtentY" VALUE="1747">  

  9.     <PARAM NAME="_StockProps" VALUE="0">  

  10. </OBJECT>  

  11. </HTML>  

注意上面的classid就是在idl文件中类的uuid,然后打开这个网页就会显示ActiveX控件。上面的classid在控件成功注册后也可以通过注册表查找,具体方法是win+R键,输入regedit命令,就会弹出“注册表编辑器”,位置在“HKET_CLASSES_ROOT”中,根据你控件的名称,快速按下前三个字母,然后就可以定位到比较好找的位置,如下图

第二种:建立Mfc应用程序,在Mfc窗口右键-》插入“ActiveX”控件,然后就会在MFC的窗体上显示ActiveX控件

第三种:也是最方便的一种方法,就是使用vs自带的ActiveX Control Test Container来测试ActiveX控件,但是VS2010在“工具”中没有这一项,那么我们首先可以手动把这个工具添加到VS2010里,首先找到C:\Program Files\Microsoft Visual Studio 10.0\Samples\2052\C++\MFC\ole\TstCon\TstCon.sln,然后使用VS2010打开解决方案TstCon.sln,编译项目TCProps和TstCon,编译完成后会在C:\Program Files\Microsoft Visual Studio 10.0\Samples\2052\C++\MFC\ole\TstCon\Debug\中生成TstCon.exe执行程序,这个执行程序就是ActiveX Control Test Container,接下来我们就在VS2010中的工具中添加这个TstCon.exe,在VS2010中的“工具”菜单项中选择“外部工具”,在弹出的窗体中添加一个新的工具,标题为ActiveX Control Test Container,命令为C:\Program Files\Microsoft Visual Studio 10.0\Samples\2052\C++\MFC\ole\TstCon\Debug\TstCon.exe,然后点击确定就可以完成工具的添加了。

 

 这样,在“工具”中就有了一个ActiveX Control Test Container,点击它就会弹出测试ActiveX的容器,如下图

点击Edit->Insert New Control->选择TestMfcAtlDebug Control,点击OK

然后就会显示这个注册后的AcitveX控件,如果要测试这个控件的调度映射的方法Fuck2,就先选中控件,然后点击Control-》Invoke Methods,在Methods Name下拉框中选择Fuck2这个方法,点击Invoke按钮就可以测试这个方法了,如下图:

我们可以看到上面的ActiveX控件是一个空白的背景和一个圈组成的,并没有窗体界面,那么怎么添加窗体呢?

 

9.向ActiveX控件中添加一个Mfc窗体,就是一个带界面的ActiveX控件

 步骤:

第一:在资源视图中新建一个对话框资源

去掉上边的“确定”和“取消”按钮,然后修改对话框属性:Border改为None,Control改为Ture,ID改为IDD_MAIN_DIALOG,Style改为Child,System改为False,Visible改为True,然后在对话框中双击,为对话框添加一个类,如下图:

 

点击“完成”。在解决方案资源管理器中新增了一个ViewDialog.h和ViewDialog.cpp这个ViewDialog类就是刚刚我们建立的对话框类

然后拖一个Edit Control到对话框上,修改其ID为IDC_EDIT_OUTPUT,再拖一个Button到对话框上,此时对话框效果为:

 对话框建立完成,接下来就是要把它添加到ActiveX控件中去

 

第二:在TestMfcAtlDebugCtrl.h中定义对话框实例m_VideoDlg

 然后在TestMfcAtlDebugCtrl类中定义两个消息映射:窗体创建完成消息映射和窗体改变大小消息映射

在VS2010的菜单项“项目”--》“类向导”中,选择要添加到的项目和类中,选择“消息”选项卡,选择WM_CREATE后点击”添加处理程序“按钮和选择WM_SIZE

后点击”添加处理程序“,这样在“现有的处理程序”中就有OnCreate和OnSize这两个函数,点击确定,完成消息映射函数的添加,如图:

 在TestMfcAtlDebugCtrl.cpp中自动添加下列代码,如图:

 在OnCreate函数中编写如下代码(Create是在ActiveX控件中创建一个窗体对话框,IDD_VIEW_DIALOG就是刚刚新建的对话框):

 在OnSize函数编写代码如下(MoveWindow是确定窗体对话框在ActiveX中的大小):

 

 第三:重新编译,注册ocx,使用ActiveX Control Test Container再次测试该控件

 可以发现这个ActiveX控件中已经有了界面了

 

 

 

 

转载自:http://blog.csdn.net/longhuahaha/article/details/8556964


西方对高校进行意识形态渗透有哪些方式

        我国是一个大国,一个发展中奔向发达国家的大国。这是一个艰巨而漫长的过程,更是中华民族崛起的艰苦历程。然而,一个庞然大物的成长,伴随而来的必然是打压和摧毁。西方国家利用各种手段对我国新一代青年进行洗脑式的渗透,企图利用思想的控制来遏制我国的发展。

        无处不在渗透悄无声息地潜入我们的生活中。激动人心的电影,热血澎湃的青春电视剧,高大上的商业广告,无不悄悄地影响着我们的生活。我们的思想,价值观,精神都在潜移默化的被改变。

        首要的就是电影。为什么这么说,举个很现实的例子。美国的大片以壮观,气势恢弘的形象展现在各个舞台。而细细推敲背后的的思维模式,都是个人英雄主义和伪善。这些电影看起来积极向上,温暖动人。但是他的前提是,他们是一个发达国家。物质的丰富会使人转移到精神的追求中。而在物质的更上一层,确是资本主义的极度贪婪和剥削,人性的丑恶展现的淋漓尽致。说的简单一点,就是用多数人的梦来欺骗我们追求的梦,让我们深陷其中,对其美好向往。

嗯哼

刘可忆:

最近单曲循环的一首歌。

歌词未知,旋律已入骨。

结婚的意义

阅读文字【微信:timetellyou】:

作者 :  白昂


      有个男生,上个月告诉我,他喜欢上了一个不错的女生,找人打听到了她的电话,和她聊了几次,终于鼓起勇气告白。可是女孩巧妙的回避了他,之后他就不再回复,继续忙碌起来,寻找下一个猎物。我问他,你觉得这样,好还是不好?他说,我不知道,我只知道再晚一点,我就找不到对象了。我问,以前那份痴情的执着,怎么没了?他苦笑,因为,长大了。


      不知从何时起,我们失去了等待和爱一个人的能力,然而我们都明白,又有谁愿意停下脚步,来安静的看看你的伤疤,听听你的苦衷,慢慢的了解一个人呢?你开始学会贮藏自己的情感,少一点期盼,少一点失望,少一点偏执,少一点伤害。成长剥夺了曾经那些矫情又幼稚的情感,经历,冷却了你身上的温度。你终于学会了聪明,不会对一个人倾之所有,不会再轻易对一个人敞开心扉,不会再对一个人倾注过多的时间和精力。你长大了,已然不是那个肆意挥霍时间和精力的少年。优胜劣汰的现实社会,有那么多比你优秀的人仿佛麋鹿一般在用力奔跑,你也要不回头的向前跑,没有时间驻足,没有时间恻隐,你必须把更多的人落在身后,你最无可奈何,但你必须如此。


      有那么一段时光,人们总是会感慨生命中来来去去的人,会想起,会思念,会矫情,但片刻之后便会回归自己的生活,马不停蹄的奔向自己的未来,也不知是摒弃了矫情,还是学会了冷漠。我想,只有放肆的矫情过,长大后才会明白,人的情感,其实都是有期限的,爱,憎,恨,这世间所有的情感,都有期限,过了这个期限,一切都化作似水流年。伤情是因为遗憾,因为不舍,因为对于感情长久的天真,而过了这个期限,已然不会再如此矫情了。成长总会教人放下和忘记,而曾经那份伤情和遗憾的情愫,便是对过往青春,最好的祭奠。


      我们终其一生寻找的无非是那个甘愿为你停下脚步,为你驻足的人,这是以前看到的一句话。逐渐懂得,生命的时光,越走越短。真正进入你生命的人,越来越少。曾经根深蒂固的情感,也会慢慢的剥离,从你生活的轨迹中消失。有一天,你会开始习惯告别,习惯真的,就再也不见。


      我们终会懂得,人的成长,注定是一场孤独的旅途。我们都要学会,在生命里的那个寒冷的冬天,一个人孤独的过冬。不奢求别人,不依赖别人,自己温暖自己,自己之于自己,自己给自己力量和勇气。我们都一样,要学会承受生命的孤独与无助,挺过去,才能看见美好和繁华。


 


      昨天,一个同学说,她要结婚了,因为要赶着一起买房子。不久前,朋友说,想结婚,因为想要一个孩子,生活实在太无趣了。还听到过,不止一个人说,对方条件还不错,那么就结婚吧。很多个结婚的理由,不知道为什么,都是这样的勉强,让人听不出婚姻里喜乐悲哀的理由。很久没有听到这样的理由,他要结婚,是因为很爱很爱一个人,因为想要和另一个人永远的在一起。也许永远,实在是太远了,也许人生真的无法十全十美吧!


      在一本书上,看到一位香港的女作家说,我们身处在一个鸡肋世界,生活上太多食之无味的存在,上至婚姻事业,下至中午时分匆匆吃下肚的,那个盒饭。读这段文字的时候,我能够感受到一种不见眼泪的悲伤,和一种不见血肉的折磨。生活,仿佛总在营造着一个又一个的缺陷。有一次,我碰上了一个高中时候的女友,我知道,很长时间以来,她都在相亲,但是始终,没有满意的。于是,我问她,是不是要求太高了,是不是要的是那种,高收入,高学历,高身材的?她笑笑说,不是啊,她对这些倒不是太看重。其实,相亲,是目的性很强的,就是奔着结婚而去,但是,她就是没有那种感觉。什么都对,但是,感觉不对。我知道,这种只要感觉的人是相亲中是最难成功的,就忍不住逼问她,到底是怎样的结婚的感觉呢?她说,我只是希望,在我不开心的时候,他可以让我觉得他会一直在我身边,即使不安慰什么,就抱着我,紧紧的,说他会一直很爱我。我不祈求轰轰烈烈,我的婚姻也会是云淡风情,细水长流。但有一天,当他向我求婚时,不是因为婚姻能带给他多少实际的利益,而是因为,婚姻,在他生活中的那份意义。我希望,在那一刻,他至少可以给我一个理由,他要和我相守,即便,是在那一刻。她的表情坚定,没有一丝玩笑的成分,我忽然觉得有一丝感动,在这个连月光都无法穿越的城市里,感觉到了一丝,温情的光。



微凉中:

小黑看世界杯,为了体现我的贤良淑德,除了调酒,又给他做了下酒菜,就是这#泡椒凤爪#,以前是我的最爱,最爱吃友友牌,但现在觉得我自己做的更好吃,咔咔。
—————
—————
【泡椒凤爪】
材料:凤爪(吃多少买多少)、青柠2个、花雕酒、泡椒1瓶、冰糖2-3颗、葱姜蒜花椒八角香叶、卤包1个
步骤:
1、清理凤爪,剪指甲,一只爪剁成三块,切面尽量大,这样才进味儿;
2、把切好的凤爪过水;
3、重新一锅水,下爪子,花雕酒,把葱姜蒜花椒八角香叶放卤包里,进锅,煮,煮到筷子戳透爪子;
4、捞起爪子,放冷水过凉,最好放自来水下冲,把鸡爪身上煮的黏糊糊的冲走,冲到清爽时就好啦;
5、有瓶瓶罐罐最好,没有的,可以像我一样弄个大碗,但得有盖子这种啊,里面倒上纯净水、放冰糖、柠檬切开先挤挤汁进里面,再把挤完的柠檬扔进去,最重要倒进泡椒,喜欢辣的就再搁一瓶泡椒,搅拌一下,入爪子,然后再给搅拌搅拌;
6、密封,放冰箱冷藏,一个晚上就OK,随吃随拿,具美味。
PS:不用放盐,因为买的那种现成的泡椒已经够咸了。没有柠檬的用醋代替也行。酒嘛,反正花雕煮过的特香,没有花雕用别的白酒也行。

存档灵魂:

雨巷 ——她彷徨在这寂寥的雨巷,撑着油纸伞,像我一样,像我一样地,默默彳亍着,寒漠、凄清,又惆怅……在雨的哀曲里,消了她的颜色,散了她的芬芳,消散了,甚至她的太息般的眼光,丁香般的惆怅。


【文】戴望舒

 

撑着油纸伞,独自
彷徨在悠长、悠长
又寂寥的雨巷
我希望逢着
一个丁香一样地
结着愁怨的姑娘

她是有
丁香一样的颜色
丁香一样的芬芳
丁香一样的忧愁
在雨中哀怨
哀怨又彷徨
她彷徨在这寂寥的雨巷
撑着油纸伞
像我一样
像我一样地
默默彳亍着
寒漠、凄清,又惆怅

她默默地走近
走近,又投出
太息一般的眼光
她飘过
像梦一般地
像梦一般地凄婉迷茫

 

像梦中飘过
一枝丁香地
我身旁飘过这女郎
她静默地远了、远了
到了颓圮的篱墙
走尽这雨巷

在雨的哀曲里
消了她的颜色
散了她的芬芳
消散了,甚至她的
太息般的眼光
丁香般的惆怅

撑着油纸伞,独自
彷徨在悠长、悠长
又寂寥的雨巷
我希望飘过
一个丁香一样地
结着愁怨的姑娘

 

【赏析】


       《雨巷》是戴望舒的成名作和前期的代表作,他曾因此而赢得了“雨巷诗人”的雅号。这首诗写于1927年夏天。当时全国处于白色恐怖之汇总,戴望舒因曾参加进步活动而不得不避居于松江的友人家中,在孤寂中咀嚼着大革命失败后的幻灭与痛苦,心汇总充满了迷惘的情绪和朦胧的希望。《雨巷》一诗就是他的这种心情的表现,其中交织着失望和希望、幻灭和追求的双重情调。这种情怀在当时是有一定的普遍性的。《雨巷》运用了象征性的抒情手法。诗中那狭窄阴沉的雨巷,在雨巷中徘徊的独行者,以及那个像丁香一样结着愁怨的姑娘,都是象征性的意象。这些意象又共同构成了一种象征性的意境,含蓄地暗示出作者即迷惘感伤又有期待的情怀,并给人一种朦胧而又幽深的美感。富于音乐性是《雨巷》的另一个突出的艺术特色。诗中运用了复沓、叠句、重唱等手法,造成了回环往复的旋律和宛转悦耳的乐感。因此叶圣陶先生称赞这首诗为中国新诗的音节开了一个“新纪元”。
    
       一首好的抒情诗,应该是艺术美的结晶。它会超越时间和空间的限制而唤起人们审美的感情。 然而多年来,《雨巷》和戴望舒的其他一些诗作,却被视为象征派和现代派的无病呻吟而排斥在文学史的视野外;直到最近,人们才像观赏出土文物一样,把这些作品从遗忘的尘土中挖掘出来,又重新看到了它们身上的艺术光辉。

       戴望舒在坎坷曲折的二十多年创作道路上,只给我们留下来九十多首抒情短诗,《雨巷》,就是他早期的一首成名作。

       《雨巷》大约写于1927年夏天。最初发表在1928年8月出版的《小说月报》第十九卷第八号上。戴望舒的挚友杜衡在1933年写道:

      说起《雨巷》,我们很不容易把叶圣陶先生底奖掖的。《雨巷》写成后差不多有年,在叶圣陶先生代理编辑的《小说月报》的时候,望舒才忽然把它投寄出去。圣陶先生一看到这首诗就有信来,称许他替新诗的音节开了一个新的纪远。……圣陶先生底有力的推荐,是望舒得到了“雨巷”诗人的称号,一直到现在。(《望舒草· 序》)

      《雨巷》创设了一个富于浓重点象征色彩的抒情意境。在这里,诗人把当时的黑暗而沉闷的社会现实暗喻为悠长狭窄而寂寥的“雨巷”。这里没有声音,没有欢乐,没有阳光。而诗人自己,就是这样的雨巷中彳亍彷徨的孤独者。他在孤寂中怀着一个美好的希望。希望有一种美好的理想出现在自己面前。诗人笔下的“丁香一样的”姑娘,就是这种美好理想到象征。然而诗人知道,这美好的理想是很难实现的。她和自己一样充满了愁苦和惆怅,而且又是倏忽即逝,像梦一样从身边飘过去了。留下来的,只有诗人自己依然在黑暗的现实中彷徨,和那无法实现的梦一般飘然而逝的希望!

       有论者说,《雨巷》时诗人用美好的“想象”来掩盖丑恶的“真实”和“自我解脱”,是“用一些皂泡般的华美的幻象来欺骗自己和读者”,除了艺术上的和谐音律美外,“在内容上并无可取之处”。(凡尼:《戴望舒诗作试论》,《文学评论》1980,4),这些诘难和论断,对于《雨巷》来说,未免国语简单和苛刻了。

      《雨巷》产生的1927年夏天,是中国历史上一个最黑暗的时代,反动派对革命者对血腥屠杀,造成了笼罩全国的白色恐怖。原来热烈响应了革命的青年,一下子从火的高潮堕入了夜的深渊。他们中的一部分人,找不到革命的前途。他们在痛苦中陷于彷徨迷惘,他们在失望中渴求着新的希望的出现,在阴霾中盼望飘起绚丽的彩虹。《雨巷》就是一部分进步青年这种心境的反映。戴望舒写这首诗的时候只有二十一二岁。一年多以前,他与同学杜衡、施蛰存、刘呐鸥一起从事革命的文艺活动,并加入了共产主义青年团,用他的热情的笔投入了党的宣传工作。1927年3月,还因宣传革命而被反动当局逮捕拘留过。“四·一二”政变后,他隐居江苏松江,在孤寂中嚼味着“在这个时代做中国人的苦恼”。(《望舒草·序》)他这时候所写的《雨巷》等诗中便自然贮满了彷徨失望和感伤痛苦的情绪。这种彷徨感伤的情绪,不能笼统地说是纯属个人的哀叹,而是现实的黑暗和理想的幻灭在诗人心中的投影。《雨巷》则用短小的抒情的吟诵再现了这部分青年心灵深处典型的声音,在这里我们确实听不到现实苦难的描述和反叛黑暗的呼号。这是低沉的倾述,失望的自白。然而从这倾述和自里,我们不是可以分明看到一部分青年人在理想的幻灭后的痛苦和追求的心境吗?失去美好希望的痛苦在诗句里流动。即使是当时的青年也并非那么容易受着“欺骗”。人们读了《雨巷》,并不是要永远彷徨在雨巷。人们回憎恶这雨巷,渴望出离这雨巷,走到一个没有阴雨,没有愁怨的宽阔光明的地方。

      《雨巷》在艺术上一个重要的特色是运用了象征主义的方法抒情。象征主义是十九世纪末法国诗歌中崛起的一个艺术流派。他们一世界末的颓废反抗资本主义的秩序。在表现方法上,强调用暗示隐喻等手段表现内心瞬间的感情。这种艺术流派于“五四”运动退潮时期传入中国。第一个大量利用象征主义方法写诗的诗李金发。戴望舒早期的创作也明显地就手了法国象征派的影响。他的创作的一个重要特点,就是注意挖掘诗歌暗示隐喻的能力,在象征性的形象和意境中抒情。《雨巷》就体现了这种艺术上的特点。诗里那撑着油纸伞的诗人,那寂寥悠长的雨巷那像梦一般地飘过有着丁香一般忧愁地姑娘,并非真实生活本身地具体写照,而是充满象征意味地抒情形象。我们不一定能够具体说出这些形象所指的全部内容,但我们可以体味这些形象所抒发但朦胧的诗意。那个社会现实的气氛,那片寂寞徘徊的心境,那种追求二不可得的希望,在《雨巷》描写的形象里,是既明白又朦胧的,既确定有飘忽地展示在读者眼前。想象创造了象征,象征扩大了想象。这样以象征方法抒情的结果,使诗人的感情心境表现得更加含蓄蕴藉,也给读留下了驰骋想象的广阔天地,感到诗的余香和回味。朱自清先生说:“戴望舒氏也取法象征派。他译过这一派的诗。他也注重整齐的音节,但不是铿锵而是轻清的;也照一点朦胧的气氛,但让人可以看得懂。”“他是要把捉那幽微的精妙的去处。”(《中国新文学大系· 诗集·导言》)《雨巷》朦胧而不晦涩,低沉而不颓唐,深情而不轻佻,确实把握了象征派诗歌艺术大幽微精妙大去处。

       戴望舒大诗歌创作,也接受了古典诗词艺术营养的深深陶冶。在《雨巷》中,诗人创造了一个丁香一样的就着愁怨的姑娘的象征性的抒情形象。这显然是首古代诗词中一些作品的启发。用丁香结,即丁香的花蕾来象征人们的愁心,是中国古代诗词中一个传统的表现方法。如李商隐的《代赠》诗中就有过“芭蕉不展丁香结,同向春风各自愁”的诗句。南唐李璟更把丁香结和雨中惆怅联系在一起了。他的《浣溪沙》:

       手卷真珠上玉钩,依前春恨锁重楼。
       风里落花谁是主?思悠悠!

       青鸟不传云外信,丁香空结雨中愁。
       回首绿波三楚暮,接天流。

       这首诗里就是用雨中丁香结做为人们愁心象征的,很显然,戴望舒从这些诗词中吸取了描写愁情的意境和方法,用来构成《雨巷》的意境和形象。这种吸收和借鉴是很明显的,但是能不能说《雨巷》的意境和形象就是旧诗名居“丁香空结雨中愁”的现代白话版的扩充和稀释呢?我认为不能这样看。在构成《雨巷》的意境和形象时,诗人既吸取了前人的果汁,又有了自己的创造。

       第一,古人在诗里以丁香结本身象征愁心。《雨巷》则想象了一个如丁香一样结着愁怨的姑娘。她有丁香般的忧愁,也有丁香一样的美丽和芬芳。这样就由单纯的愁心的借喻,变成了含着忧愁的美好理想的化身。这个新的形象包含了作者的美的追求。包含了作者美好理想幻灭的痛苦。

       第二,诗人在《雨巷》中运用了新鲜的现代语言,来描绘这一雨中定西那个一样姑娘倏忽即逝的形象,与古典诗词套用陈词旧典不同,也与诗人早期写的其他充满旧诗词调子的作品迥异,表现了更多的新时代的气息。“丁香空结雨中愁”,没有“丁香一样的结着愁怨的姑娘”更能唤起人们希望和幻灭的情绪。在表现时代的忧愁的领域里,这个形象是一个难的的创造。

       第三,在古代诗词里,雨中丁香结是以真实的生活景物来寄托诗人的感情。《雨巷》中那个在雨中飘过的丁香一样的姑娘的形象,就带上了更多的诗人想象的成分。它既是生活中可能出现的情景,又是作家驰骋艺术想象的结晶,是真实与想象相结合所产生的艺术真实的形象。戴望舒说:“诗是由真实经过想象而出来的,不单是真实的,也不单是想象的。”(《诗论零札》十三)我们说《雨巷》的意境形象借鉴于古典诗词,又超越于古典诗词,最主要的即因为它是诗人依据生活的经验而又加上了自己想象的创造。它是比生活更美的艺术想象的产物。

      《雨巷》最初为人称道,一个重要的方面是它的音节的优美。叶圣陶盛赞这首诗“替新诗的音节开了一个新的纪元”,虽然未免有些过誉,但首先看到了它的音节的优美这一特点,不能不说诗有见地的。《雨巷》全诗共七节。第一节和最后一节除“逢着”改为“飘过”之外,其他语句完全一样。这样起结复见,首尾呼应,同一主调在诗中重复出现,加强了全诗的音乐感,也加重了诗人彷徨和幻灭心境的表现力。整个诗每节六行,每行字数长短不一,参差不起,而有大体在相隔不远的行里重复一次韵脚。每节押的两次到三次,从头至尾没有换韵。全诗句子都很短,有些短的句子还切断了词句的关连。而有些同样的字在韵脚中多次出现,如 “雨巷”“姑娘”“芬芳”“惆怅”“眼光”,有意地使一个音响在人们的听觉中反复。这样就造成了一种回荡的旋律和流畅的节奏。读起来,像一首轻柔而沉思读小夜曲。一个寂寞而痛苦读旋律在全曲中反复回响,萦绕在人的心头。

       为了强化全诗的音乐性,诗人还吸取了外国诗歌中的一些技法,在同一节诗中让同样的字句更迭相见。这种语言上的重复,复沓,像交织一起的抒情乐句反复一样,听起来悦耳,和谐,又加重了诗的抒情色彩。在浪漫的自由诗和“新月派”的豆腐干诗体盛行的时候,戴望舒送来了优美动听的《雨巷》,开拓了音乐在新诗中表现的新天地。

       戴望舒这种对新诗音乐性对追求,到《雨巷》是高峰,也是结束。此后,他开始了“对诗歌底他所谓‘音乐的成分’勇敢的反叛”,(杜衡语)走向对诗的内在情绪韵律的追求。他的另一首著名诗篇《我的记忆》,就是这种追求的一个新的里程碑。戴望舒的这种变化,反映了他新的美学见解和艺术追求,但着决不能否认《雨巷》对新诗音乐美尝试的意义。偏爱是艺术欣赏的伴侣。这首《雨巷》,是新诗中一颗发光的明珠,值得我们珍读!