2010-04-24 109 views
4

我通常會搜索此錯誤。但是在VS C++ Express中,這個錯誤會出現在你做的每一個錯誤上。任何我如何收到以下錯誤C2146:語法錯誤:缺少';'之前標識符'頂點'

error C2146: syntax error : missing ';' before identifier 'vertices' 

每次這個錯誤我添加以下代碼在我的文檔

// Create vertex buffer 
SimpleVertex vertices[] = 
{ 
    D3DXVECTOR3(0.0f, 0.5f, 0.5f), 
    D3DXVECTOR3(0.5f, -0.5f, 0.5f), 
    D3DXVECTOR3(-0.5f, -0.5f, 0.5f), 
}; 

的頂部下方是它的全部代碼。不能弄清楚什麼是錯的。感謝

[編輯]

// include the basic windows header file 
#include "D3Dapp.h" 


class MyGame: public D3Dapp 
{ 
    public: 
     bool Init3d(); 
}; 
MyGame game; 

struct SimpleVertex 
{ 
    D3DXVECTOR3 Pos; // Position 
}; 


// the entry point for any Windows program 
int WINAPI WinMain(HINSTANCE hInstance, 
        HINSTANCE hPrevInstance, 
        LPSTR lpCmdLine, 
        int nCmdShow) 
{ 
    game.InitWindow(hInstance , nCmdShow); 
    return game.Run(); 
} 


bool MyGame::Init3d() 
{ 
    D3Dapp::Init3d(); 
    // Create vertex buffer 
    SimpleVertex vertices[] = 
    { 
     D3DXVECTOR3(0.0f, 0.5f, 0.5f), 
     D3DXVECTOR3(0.5f, -0.5f, 0.5f), 
     D3DXVECTOR3(-0.5f, -0.5f, 0.5f), 
    } 

    return true; 
} 

新的錯誤

1>c:\users\numerical25\desktop\intro todirectx\msdntutorials\tutorial0\tutorial\tutorial\main.cpp(14) : error C2146: syntax error : missing ';' before identifier 'Pos' 
+1

'D3Dapp.h'中定義了'SimpleVertex'類嗎? – 2010-04-24 21:46:21

+0

不,不是,SimpleVertex的第一個外觀就是你現在看到的地方。 – numerical25 2010-04-24 21:51:43

+0

我編輯了代碼。見頂部 – numerical25 2010-04-24 21:55:49

回答

25
error C2146: syntax error : missing ';' before identifier 'vertices' 

之前標識符不知道的編譯器時,什麼是通常會出現此錯誤。在你的情況下,這意味着編譯器還沒有看到SimpleVertex

+0

我編輯了代碼。查看原文 – numerical25 2010-04-24 21:56:25

+1

@ numerical25:同樣的答案適用。它現在抱怨在'Pos'之前缺少';'。所以我會假定它不知道'D3DXVECTOR3'。那很難嗎? – sbi 2010-04-24 22:01:44

+0

我相信。但是同時我會懷疑有一個錯誤,指出未聲明或未定義的變量已經被創建。沿着這些線的東西。 – numerical25 2010-04-24 22:05:49

3

return true;前右我確實看到缺少分號;main末。

+0

是的,我糾正了第一個錯誤後得到了這個錯誤。謝謝 – numerical25 2010-04-24 22:11:01

1

額外的逗號是在結構的最後一個成員的末尾添加的。我認爲這是錯誤的。

SimpleVertex vertices[] = 
{ 
    D3DXVECTOR3(0.0f, 0.5f, 0.5f), 
    D3DXVECTOR3(0.5f, -0.5f, 0.5f), 
    D3DXVECTOR3(-0.5f, -0.5f, 0.5f)**,** 
} 
相關問題