我今天编程的时候,从别人的代码中copy了一段程序,看起来很简单,但是总是出现标题中的错误。 我把程序源码和错误信息列出来。abc.hstruct tMaterialInfo
{
char  strName[255];
char  strFile[255];
BYTE  color[3];
int   texureId;
float uTile;
float vTile;
float uOffset;
float vOffset;
};
struct t3DObject 
{
int  numOfVerts;
int  numOfFaces;
int  numTexVertex;
int  materialID;
bool bHasTexture;
char strName[255];
UINT      *pIndices;
tVector3  *pVerts;
tVector3  *pNormals;
tVector2  *pTexVerts;
tFace *pFaces;
};
struct t3DModel 
{
int numOfObjects;
int numOfMaterials;
vector<tMaterialInfo> pMaterials;// 这行为第82行
vector<t3DObject> pObject; // 这行为第83行
};错误:
c:\users\charles\documents\visual studio 2005\projects\abc\CLoad3DS.h(82) : error C2143: syntax error : missing ';' before '<'
c:\users\charles\documents\visual studio 2005\projects\abc\CLoad3DS.h(82) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\users\charles\documents\visual studio 2005\projects\abc\CLoad3DS.h(82) : error C2238: unexpected token(s) preceding ';'
c:\users\charles\documents\visual studio 2005\projects\abc\CLoad3DS.h(83) : error C2143: syntax error : missing ';' before '<'
c:\users\charles\documents\visual studio 2005\projects\abc\CLoad3DS.h(83) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\users\charles\documents\visual studio 2005\projects\abc\CLoad3DS.h(83) : error C2238: unexpected token(s) preceding ';'这究竟是什么错误呢? 我用的是vs2005。
还请大家帮忙解决,多谢!!!

解决方案 »

  1.   

    可能是使用了标准库提供的vector容器但是没有包含头文件或者引入名称空间。
    试试在文件开头加入如下语句看看:
    #include <vector>
    using namespace std;
      

  2.   

    多谢Silenker,我的问题解决了.我刚接触C++不久,经验不足.这真是太感谢了.
      

  3.   

    问题依然没有解决呀,晕倒啦。。我和楼上的一样。。我用的directshow开发包vs2008环境下
      

  4.   

    右击工程,选择properties -> configuration properties -> C/C++ -> commandline 
    在additional options 打入 /wd4403
      

  5.   

    可以试试properties->C/C++->advanced->compiled as C code
      

  6.   

    可以试试properties->C/C++->advanced->compiled as C code
    这样为什么就可以啦呢?
      

  7.   

    右击工程,选择properties -> configuration properties -> C/C++ -> commandline
    在additional options 打入 /wd4430
      

  8.   

    感谢silverpot
     
    (银斑蝶) 
      

  9.   

    MARK下 用到了,解决了,谢谢了。
      

  10.   

    右击工程,选择properties -> configuration properties -> C/C++ -> commandline
    在additional options 打入 /wd443
    这样改就好了,为啥呢?
      

  11.   

    因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整 形;但是vs2005不支持默认整形,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用wd4430来解决;具体的在工程选项中的c+ +/Command Line中添加/wd4430即可。