wake-up-neo.com

übersprungen, wenn nach vorkompiliertem Header gesucht wird

Aus irgendeinem Grund fehlt meiner .cpp-Datei die Header-Datei. Aber ich füge die Header-Datei nirgendwo sonst ein. Ich habe gerade erst angefangen, also habe ich alle Dateien geprüft, die ich gemacht habe

enginuity.h

#ifndef _ENGINE_
#define _ENGINE_

class Enginuity
{

public:
    void InitWindow();

};

enginuity.cpp

#include "Enginuity.h"


void Enginuity::InitWindow()
{

}

main.cpp

#include "stdafx.h"
#include "GameProject1.h"

#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE hInst;                                // current instance
TCHAR szTitle[MAX_LOADSTRING];                  // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];            // the main window class name

// Forward declarations of functions included in this code module:
ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{

code.....
#endif

ich weiß nicht was los ist. Den Fehler bekomme ich

1>c:\users\numerical25\desktop\intro todirectx\gameproject\gameproject1\gameproject1\enginuity.cpp(1) : warning C4627: '#include "Enginuity.h"': skipped when looking for precompiled header use
1>        Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\users\numerical25\desktop\intro todirectx\gameproject\gameproject1\gameproject1\enginuity.cpp(8) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
12
numerical25

Hast du die Fehlermeldung gelesen?

schwerwiegender Fehler C1010: unerwartetes Ende der Datei beim Suchen nach vorkompiliertem Header. Haben Sie vergessen, "#include" stdafx.h "" zu Ihrer Quelle hinzuzufügen?

Ich sehe keinen #include "stdafx.h" in enginuity.cpp. ;) Wenn Sie vorkompilierte Header verwenden, müssen Sie den vorkompilierten Header in die Datei every source (.cpp) einfügen.

33
Billy ONeal

Dieser Fehler ist gerade aufgetreten, als stdafx.h in eine cpp-Datei eingefügt wurde, die sich in einem übergeordneten Ordner oberhalb von stdafx.h befindet.

#include "subfolder\stdafx.h"

verursacht den Kompilierungsfehler. Ändern in:

#include "stdafx.h"

behebt den Kompilierungsfehler, aber dann kommt der Intellisense-Freak raus.

Der "Fix" für Intellisense ist laut jemandem bei Microsoft here , "$ (ProjectDir)" (oder wo auch immer stdafx.h ist) zur Liste der Verzeichnisse unter Project-> Properties-> hinzuzufügen Konfigurationsvorschläge-> C/C++ -> Allgemein-> Zusätzliche Include-Verzeichnisse.

Ich habe dies in Visual Studio 2012 bestätigt. Sollte auch 2010 funktionieren.

21
Gordon Glas

Sie wollen entweder die Linie setzen

#include "stdafx.h"

an der Spitze aller Ihrer .cpp-Dateien (in diesem Fall fehlt nur die Datei enenuity.cpp.).

oder deaktivieren Sie vorkompilierte Header in Ihrem Projekt.

Wenn Sie in Ihrem Projekt vorkompilierte Header aktiviert haben, sucht Visual C++ nach der #include-Direktive am Anfang aller Quelldateien. Andernfalls erhalten Sie den negativen Kommentar, den Sie erhalten haben.

6
JohnMcG

WENN DIE ZUGELASSENE LÖSUNG NICHT FÜR SIE ARBEITET:

In meinem Fall war das stdafx.h include nach anderen include in meiner .cpp-Datei. 

Durch Festlegen der Anweisung #include "stdafx.h" an der obersten Position der .cpp-Datei wurden meine Fehler behoben.

5
Viktor

Es ist möglich, vorkompilierte Header für eine einzelne Datei (VS2010) zu deaktivieren. Wählen Sie die .cc- oder .cpp-Datei, die die Belästigung verursacht, rechte Maustaste, Eigenschaften, vorkompilierte Header, Vorkompilierter Header (ändern in) Nicht verwendet vorkompilierte Header. 

3
user1577802

Ihrer Header-Datei enginuity.h fehlt ein #endif oder ist ein Fehler in der Buchung aufgetreten?

3
Thomas Matthews

Anstatt #include "stdafx.h" zu jeder .cpp-Datei hinzuzufügen, können Sie die Funktion "Forced Include File" verwenden. Die Funktion ist hier dokumentiert: https://msdn.Microsoft.com/en-us/library/8c5ztk84.aspx .

In meinem Fall habe ich versucht, vorhandene .cpp-Dateien aus einem anderen Projekt in einem neuen Projekt zu kompilieren. Ich wusste, dass ich nicht jede Datei ändern müsste, da das ursprüngliche Projekt vorkompilierte Header aktiviert hatte und es irgendwie gelang, dieselben Dateien erfolgreich zu kompilieren. Ich habe festgestellt, dass diese Option im ursprünglichen Projekt konfiguriert wurde, und der Fehler wurde behoben, nachdem ich im neuen Projekt dieselbe Konfiguration vorgenommen hatte.

2
wonderlr

Wie Viktor bereits erwähnt hat, einschließlich stdafx.h after other Includes, wird dieser Fehler ebenfalls verursacht und kann leicht auftreten, wenn Sie den Assistenten zum Hinzufügen von Funktionen verwenden. In meinem Fall fügte der Assistent das #include zum Trop der cpp-Datei hinzu (obwohl es bereits enthalten war), so dass ich (mit diesem Beispiel) endete.

#include "Enginuity.h"
#include "stdafx.h"
// ... other includes ...
#include "Enginuity.h"
0
Michael J.

Dieser Fehler tritt auf, wenn Sie zwei Lösungen in einem Unterverzeichnis eines Projekts haben und vorkompilierte Header aktiviert sind. Ich habe das gleiche Problem festgestellt und Microsoft hat es noch nicht behoben.

https://connect.Microsoft.com/VisualStudio/feedback/details/552449/

Die Microsoft-Problemumgehung funktioniert manchmal.

0
HaltingState

Fügen Sie #include "stdafx.h" oben in enginuity.cpp hinzu oder deaktivieren Sie vorkompilierte Header in Ihrem Projekt.

0
George