2012-04-02 30 views
6

Aparece el mensaje de error anterior (que busqué en Google y encontré que tiene algo que ver con una llave que falta o algo así), sin embargo, ¿no puedo ver dónde está este corchete faltante?error fatal C1004: inesperado al final del archivo encontrado

#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

Simplemente curioso, ¿por qué 'main' se envuelve en una clase? – Mahesh

+0

Tengo el ejemplo de aquí: http://stackoverflow.com/questions/4768294/multithreading-in-c – mezamorphic

+0

¿Pensé que tenía que ser envuelto en una clase? – mezamorphic

Respuesta

21

En C++, la palabra clave class requiere un punto y coma después de la llave de cierre:

class Something { 

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

¡Gracias por eso! Ahora dice "error fatal LNK1120: 1 externalidades no resueltas". Lo siento, soy un desarrollador de Java. – mezamorphic

+1

@ user1107474, es decir, el compilador podría encontrar la declaración provista en el archivo de encabezado (* .h) pero el enlace no pudo encontrar la definición. 'declaration - int Count();' <--- tienes esta en algún lugar pero falta 'definición - int Count() {return 5; } ' –

2

Se necesita un punto y coma (;) después de la llave de cierre (}) de la definición class Something

+0

Gracias, ¿no crees que sabes el problema del vinculador que obtengo ahora? – mezamorphic

+1

¿Está vinculado a las bibliotecas WINAPI? – Attila

5

Su clase Something necesita tener un punto y coma de terminación.

class Something{ 

}; // missing 
Cuestiones relacionadas