将一个VC6.0下的工程转到VS2008时,在编译VTK的时候出现如下错误:1>Meshing.cpp1>e:\cdos_v7.4\include\vtkType.h(166) : fatal error C1189: #error :  "No native data type can represent an 8-bit integer."不知道是什么原因,在线求解答,谢谢!

解决方案 »

  1.   

    msdn:
    错误消息
    #error : 用户提供的错误信息
    C1189 由 #error 生成。有关更多信息,请参见 The #error Directive。下面的示例生成 C1189:  复制代码 
    // C1189.cpp
    #undef _WIN32
    #if !defined(_WIN32)
    #error _WIN32 must be defined   // C1189
    #endif
     如果使用 /robust MIDL 编译器选项生成 ATL 项目,也有可能看到此错误。/robust 仅用于为 Windows 2000 或更高版本的计算机生成。因此,要么移除 /robust,要么将 dlldatax.c 文件中的此行:  复制代码 
    #define _WIN32_WINNT 0x0400   // for WinNT 4.0 or Win95 with DCOM
     为   复制代码 
    #define _WIN32_WINNT 0x0500   // for WinNT 4.0 or Win95 with DCOM
     要移除 /robust,请在 MIDL 属性页文件夹中的高级属性页中指定 /no_robust。 有关更多信息,请参见 MIDL 属性页:高级。
      

  2.   

    好像vtk在vc6.0和vs的配置有些地方是不同的