Reputation: 1069
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
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
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