有关enum的奇怪异常,问了N多人都没能解决

有关enum的奇怪错误,问了N多人都没能解决
typedef   DataItem <char,   unsigned>   Reg;
enum   DI_ACTION   {READ,   WRITE}; //   line   of   16
enum   DI_ERROR   {NOERROR,   TIMEOUT,   BREAKDOWN,   NOTOPEN};
g:\power\power\meter.h(16)   :   error   C2143:   语法错误:   缺少“}”(在“常量”的前面)
g:\power\power\meter.h(16)   :   error   C2143:   语法错误:   缺少“;”(在“}”的前面)
g:\power\power\meter.h(16)   :   error   C2059:   语法错误:   “}”  

刚开始以为是空白符中有汉字的原因,但是我把它们复制到一个hello   world代码里面,用G++和VS2005的CL编译,都能通过。又把它它们复制到记事本、word再复制回来,还是不行。
真要怀疑是vs2005的BUG了!我的已经打了SP1补丁



------解决方案--------------------
enum DI_ACTION {READ1, WRITE1} ;
enum DI_ERROR {NOERROR1, TIMEOUT1, BREAKDOWN1, NOTOPEN1};
--
好像就没问题了
------解决方案--------------------
//typedef DataItem <char, unsigned> Reg;
enum DI_ACTION {READ, WRITE};// line of 16
enum DI_ERROR {NOERROR1, TIMEOUT1, BREAKDOWN1, NOTOPEN1};
同意he_zhidan,这样修改,就没有问题。
------解决方案--------------------
估计宏定义名字和系统冲突了,前两天刚遇到过这个问题