2012-04-02 22 views
6

Viene visualizzato il messaggio di errore sopra riportato (che ho cercato e trovato su google con una parentesi graffa mancante o qualcosa del genere), tuttavia, non riesco a vedere dove si trova questa parentesi mancante?errore fatale C1004: trovato fine file inaspettato

#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

Solo curioso, perché è "principale" in una classe? – Mahesh

+0

Hai ottenuto l'esempio da qui: http://stackoverflow.com/questions/4768294/multithreading-in-c – mezamorphic

+0

Ho pensato che fosse necessario eseguire il wrapping in una classe? – mezamorphic

risposta

21

In C++, la parola chiave class richiede un punto e virgola dopo la parentesi graffa di chiusura:

class Something { 

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

Grazie per quello! Ora dice "errore irreversibile LNK1120: 1 non risolto esternamente" Mi dispiace, sono uno sviluppatore Java! – mezamorphic

+1

@ user1107474 ciò significa che il compilatore potrebbe trovare la dichiarazione fornita nel file di intestazione (* .h) ma che il collegamento non ha trovato la definizione. 'declaration - int Count();' <--- avete questa definizione da qualche parte ma mancante '- int Count() {return 5; } ' –

2

Hai bisogno di un punto e virgola (;) dopo la parentesi graffa di chiusura (}) della definizione class Something

+0

Grazie, non pensi di conoscere il problema del linker che ricevo ora? – mezamorphic

+1

Stai collegando nuovamente le librerie WINAPI? – Attila

5

La classe Something deve avere un punto e virgola.

class Something{ 

}; // missing 
Problemi correlati