2012-04-02 26 views
6

私はグーグルが見つかりましたが、見つからない中括弧などと何か関係があると思いますが、このブラケットがどこにないのかわかりません。 C++で致命的なエラーC1004:予期しないファイルの終わりが見つかりました

#include "stdafx.h" 
#include <Windows.h> 
#include <iostream> 
using namespace std; 

    class Something{ 


     static DWORD WINAPI thread_func(LPVOID lpParameter) 
     { 
      thread_data *td = (thread_data*)lpParameter; 
      cout << "thread with id = " << td->m_id << endl; 
      return 0; 
     } 


     int main() 
     { 
      for (int i=0; i< 10; i++) 
      { 
       CreateThread(NULL, 0, thread_func, new thread_data(i) , 0, 0); 
      } 

      int a; 

      cin >> a; 
     } 

     struct thread_data 
     { 
      int m_id; 
      thread_data(int id) : m_id(id) {} 
     }; 

    } 
+0

「main」がクラスにラップされているのはなぜですか? – Mahesh

+0

ここから例を得ました:http://stackoverflow.com/questions/4768294/multithreading-in-c – mezamorphic

+0

私はそれをクラスにラップする必要があると思いましたか? – mezamorphic

答えて

21

classキーワードは閉じ括弧の後にセミコロンが必要です。

class Something { 

}; // <-- This semicolon character is missing in your code sample. 
+0

ありがとう!今は "致命的なエラーLNK1120:1未解決の外部"私はJavaの開発者だ申し訳ありません! – mezamorphic

+1

@ user1107474これは、コンパイラがヘッダーファイル(* .h)で提供されている宣言を見つけることができたが、リンクされている定義が見つかりませんでした。 'declaration - int Count();' <---これはどこかにありますが、欠落しています '定義 - int Count(){return 5; } ' –

2

あなたはclass Something定義

+0

ありがとう、私は今得ているリンカーの問題を知っていると仮定しないでください? – mezamorphic

+1

WINAPIライブラリをもう一度リンクしていますか? – Attila

5

の閉じ中括弧(})の後にセミコロン(;)が必要ですあなたのクラスSomethingはセミコロンを終わらせる必要があります。

class Something{ 

}; // missing 
関連する問題