你能帮我理解问题所在吗?
我似乎已经包含了stdafx.h
。
然后我尝试重建解决方案。试图清理解决方案。
无论如何我得到了这个:
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
当然还有缺少头文件后的全套错误。
我的档案:
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);
}
答案 0 :(得分:7)
stdafx.h
必须作为第一个包含文件。
并且您不得将其包含在其他包含文件中。
在#pragma once
个文件
.cpp
无效
答案 1 :(得分:1)
这是另一种可能性:您已经有一个标题为源文件的头文件。在Visual Studio中,右键单击头文件,然后在“配置属性”>中。一般>项目类型检查您有" C / C ++标题",不是" C / C ++编译器"。
通过输入< ClCompile>手动编辑.vcxproj文件时,这是一个很容易犯的错误。而不是< ClInclude>。