8
votes

Erreur fatale C1004: fin de fichier inattendu trouvé

Je reçois le message d'erreur ci-dessus (que j'ai googlé et trouvé est quelque chose à voir avec une attelle bouclée manquante ou quelque chose), cependant, je ne peux pas voir où se trouve ce support manquant?

#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) {}
        };

    }


3 commentaires

Juste curieux, pourquoi principal enveloppé dans une classe?


A obtenu l'exemple d'ici: Stackoverflow.com/questions/4768294/MULTHReading-in-c


Je pensais qu'il devait être enveloppé dans une classe?


4 Réponses :


24
votes

en C ++, le mot-clé code> Classe code> nécessite un point-virgule après la brace de fermeture:

class Something {

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


2 commentaires

Merci pour ça! Il dit maintenant "Erreur fatale LNK1120: 1 external non résolue" Je suis désolé, je suis un développeur Java!


@ user1107474 Cela signifie que le compilateur pourrait trouver la déclaration fournie dans le fichier d'en-tête (* .h) mais liée n'a pas pu trouver la définition. Déclaration - Int Nombre (); <--- Vous avez cela quelque part mais manquant Définition - int comptage () {retour 5; }



3
votes

Vous avez besoin d'un point-virgule (; ) après la corpaison de fermeture (} ) de la classe quelque chose Définition


2 commentaires

Merci, ne supposez pas que vous connaissez le problème de la liaison, je reçois maintenant?


Êtes-vous reliez contre les bibliothèques Winapi?



6
votes

Votre classe quelque chose code> doit avoir un point-virgule de terminaison.

class Something{

}; // missing


0 commentaires

1
votes

Vous avez peut-être manqué

#ifdef  ROCKSTAR 

#endif <--- this might be missing 


0 commentaires