vc6的工程转换到vs2010,出现"语法异常 : 缺少';'(在'常量'的前面)"

vc6的工程转换到vs2010,出现"语法错误 : 缺少';'(在'常量'的前面)"
vc6的工程转换到vs2010,出现"语法错误 : 缺少';'(在'常量'的前面)"。编译报100多个错误,错误类型基本一样。出错的文件是系统的头文件,smmintrin.h和intrin.h。
怎么解决呀?
(发帖时不知道选哪个小论坛了,随便选了一个)

部分报错的行:
__MACHINEX86X_X64(__m128 _mm_round_ss(__m128 dst, __m128 val, int iRoundMode))
__MACHINEX86X_X64(__m128i _mm_cvtepi8_epi32 (__m128i byteValues))
__MACHINEX86X_X64(__m128i _mm_cvtepi16_epi32(__m128i shortValues))

编译报错的信息:

113 IntelliSense: 应输入“)” c:\program files\microsoft visual studio 10.0

\vc\include\smmintrin.h 184 58
114 IntelliSense: 应输入“)” c:\program files\microsoft visual studio 10.0

\vc\include\smmintrin.h 185 58
115 IntelliSense: 应输入“)” c:\program files\microsoft visual studio 10.0

\vc\include\intrin.h 892 1
116 IntelliSense: 应输入“)” c:\program files\microsoft visual studio 10.0

\vc\include\intrin.h 893 1
错误 2 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 184 1 MaEdit2
错误 6 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 185 1

MaEdit2files\microsoft visual studio 10.0\vc\include\intrin.h 893 1 MaEdit2
错误 76 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 185 1 MaEdit2
错误 90 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 185 1 MaEdit2
错误 94 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\intrin.h 892 1 MaEdit2
错误 97 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\intrin.h 893 1 MaEdit2
错误 100 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 184 1 MaEdit2
错误 104 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 185 1 MaEdit2
错误 108 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\intrin.h 892 1 MaEdit2
错误 111 error C2143: 语法错误 : 缺少“;”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\intrin.h 893 1 MaEdit2
错误 1 error C2143: 语法错误 : 缺少“)”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 184 1 MaEdit2
错误 5 error C2143: 语法错误 : 缺少“)”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 185 1 MaEdit2
错误 29 error C2143: 语法错误 : 缺少“)”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 184 1 MaEdit2
错误 33 error C2143: 语法错误 : 缺少“)”(在“常量”的前面) c:\program 

files\microsoft visual studio 10.0\vc\include\smmintrin.h 185 1 MaEdit2
错误 37 error C2143: 语法错误 : 缺少“)”(在“常量”的前面) c:\program 





------解决方案--------------------
看看对C2143的解释

C/C++ code
错误消息
语法错误 : “token2”前缺少“token1”


编译器需要特定的标记(空白以外的语言元素),但发现另一个标记。 C2143 可能在不同情况下发生。

有关使用函数 Try 块时出现的该错误的信息,请参见知识库文章 Q241706。

检查 C++ 语言参考以确定语法不正确的代码位置。由于编译器可能在导致问题的行后面报告该错误,因此请检查该错误前面的几个代码行。

使用 /clr 并且 using 指令有语法错误时:

  复制代码 
// C2143a.cpp
// compile with: /clr /c
using namespace System.Reflection;   // C2143
using namespace System::Reflection;
 

在不使用 /clr 的情况下,通过 CLR 语法来编译源代码文件时:

  复制代码 
// C2143b.cpp
ref struct A {   // C2143 error compile with /clr
   void Test() {}
};

int main() {
   A a;
   a.Test();
}
 

跟在 if 语句后的第一个非空白字符应是左括号。编译器无法翻译任何其他内容:

  复制代码 
// C2143c.cpp
int main() {
   int j = 0;

   // OK
   if (j < 25)
      ;

   if (j < 25)   // C2143
}
 

在检测到错误的行上或该行上面的几行中缺少右大括号、圆括号或分号:

  复制代码 
// C2143d.cpp
// compile with: /c
class X {
   int member1;
   int member2   // C2143
} x;
 

类声明中的标记无效:

  复制代码 
// C2143e.cpp
class X {
   int member;
} x;

class + {};   // C2143 + is an invalid tag name
class ValidName {};   // OK
 

标签未附加到语句。如果必须单独放置标签(如放置在复合语句的末尾),则将其附加到 null 语句中: 

  复制代码 
// C2143f.cpp
// compile with: /c
void func1() {
   // OK
   end1:
      ;

   end2:   // C2143
}
 

对标准 C++ 库中的类型进行非限定调用:

  复制代码 
// C2143g.cpp
// compile with: /EHsc /c
#include <vector>
static vector<char> bad;   // C2143
static std::vector<char> good;   // OK
 

缺少 typename 关键字: 

  复制代码 
// C2143h.cpp
template <typename T>
struct X {
   struct Y {
      int i;
   };
   Y memFunc();
};
template <typename T>
X<T>::Y X<T>::memFunc() {   // C2143
// try the following line instead
// typename X<T>::Y X<T>::memFunc() {
   return Y();
}
 

尝试定义显式实例化:

  复制代码 
// C2143i.cpp
// compile with: /EHsc /c
// template definition
template <class T>
void PrintType(T i, T j) {}

template void PrintType(float i, float j){}   // C2143
template void PrintType(float i, float j);   // OK