2014-02-02 3 views
-1

Извините за небрежное название, но даже я не могу определить, почему код забросил ошибку. Я использую векторы в моем коде, и когда я добавил это так:Дает ошибку в locale.h

std::vector<D3DXVECTOR3> vertexArray; 

Затем он начал давать ошибки, как это:

d:\program files\microsoft visual studio 10.0\vc\include\locale.h(28): error C2143: syntax error : missing ';' before 'string' 
d:\program files\microsoft visual studio 10.0\vc\include\locale.h(28): error C2059: syntax error : 'string' 
d:\program files\microsoft visual studio 10.0\vc\include\locale.h(28): error C2143: syntax error : missing ';' before '{' 
d:\program files\microsoft visual studio 10.0\vc\include\locale.h(28): error C2447: '{' : missing function header (old-style formal list?) 
d:\program files\microsoft visual studio 10.0\vc\include\xlocinfo(128): error C3861: 'localeconv': identifier not found 

Как я могу исправить ошибку? Эта ошибка возникла, когда я использую пространство имен std после вектора. Извините, я не могу решить, какой файл заголовка я должен дать. Я даю заголовочный файл, который вектор в нем:

#ifndef _MODEL_H 
#define _MODEL_H 

#include <vector> 
#include <Windows.h> 
#include <d3d9.h> 
#include <d3dx9.h> 

struct CUSTOMVERTEX; 

class Model 
{ 
public: 
    Model(); 
    virtual ~Model(); 

    bool initModel(LPDIRECT3DDEVICE9 device); 
    void renderModel(LPDIRECT3DDEVICE9 device); 

private: 
    LPDIRECT3DVERTEXBUFFER9 v_buffer; 
    LPDIRECT3DINDEXBUFFER9 i_buffer; 
    LPDIRECT3DTEXTURE9 tex; 
    static const DWORD FVF_FORMAT; 
    std::vector<D3DXVECTOR3> vertexArray; 
    std::vector<D3DXVECTOR2> texcoorArray; 
    std::vector<CUSTOMVERTEX> vertices; 
    std::vector<short> indices; 
}; 

struct CUSTOMVERTEX 
    { 
     float x, y, z; 
     float tu, tv; 
    } 

#endif 

ответ

4

Ошибка может быть вызван отсутствием точки с запятой в конце определения структуры.

Try изменения:

struct CUSTOMVERTEX 
{ 
    float x, y, z; 
    float tu, tv; 
} 

в

struct CUSTOMVERTEX 
{ 
    float x, y, z; 
    float tu, tv; 
}; // added semicolon here 

На данный момент C компилятор будет искать следующий включенный файл для продолжения этого кода, а затем отчет об ошибке в следующем файле ,

+0

Он работает! Я думал, что ошибка связана с вектором или чем-то, я даже не проверял структуру ... – Sphynxinator

Смежные вопросы