Trts
Trts

Reputation: 1069

Header file skipped when looking for precompiled header use

Could you help me understand what the problem is? I seem to have included stdafx.h. Then I tried to rebuild the solution. Tried to clean the solution. And anyway I get this:

c:\...\tetris\figure_factory.cpp(2): warning C4627: '#include "figure_factory.h"': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\...\tetris\tetris\figure_factory.cpp(3): warning C4627: '#include "figure.h"': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header

And of course the full set of mistakes following from the absence of the header files.

My files:

figure_factory.cpp


#pragma once
#include "figure_factory.h"
#include "figure.h"
#include "stdafx.h"
#define stop __asm nop

Figure I;
I.shape = {
            {{0, 0, 0, 0}, 
             {1, 1, 1, 1},
             {0, 0, 0, 0},
             {0, 0, 0, 0}},
......



figure_factory.h

#pragma once
#include "figure.h"
#include "stdafx.h"
#define stop __asm nop


class Figure_Factory{
    const int figure_number = 5; 
    const int colour_number = 5; 

    public:
        Figure get_figure(int type, int colour);
}

Upvotes: 3

Views: 8615

Answers (2)

Nanki
Nanki

Reputation: 828

Here's another possibility: You've got a header file which is marked as a source file. In Visual Studio, right-click the header file and in Configuration Properties > General > Item Type check that you have "C/C++ header", not "C/C++ compiler".

This is an easy mistake to make when manually editing the .vcxproj file, by typing <ClCompile> instead of <ClInclude>.

Upvotes: 1

Loghorn
Loghorn

Reputation: 2807

stdafx.h must come as first include file if you are using precompiled headers and Microsoft compiler. And you must not include it in other include files. And #pragma once is useless in .cpp files

Upvotes: 7

Related Questions