3

你能帮我理解问题是什么吗?我似乎已经包括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);
}
4

2 回答 2

7

stdafx.h如果您使用预编译头文件和 Microsoft 编译器,则必须作为第一个包含文件。并且您不得将其包含在其他包含文件中。并且#pragma once.cpp文件中没用

于 2013-03-23T17:14:38.037 回答
1

这是另一种可能性:您有一个标为源文件的头文件。在 Visual Studio 中,右键单击头文件,然后在配置属性 > 常规 > 项目类型中检查您是否有“C/C++ 头文件”,而不是“C/C++ 编译器”。

在手动编辑 .vcxproj 文件时,通过键入 <ClCompile> 而不是 <ClInclude>,这是一个容易犯的错误。

于 2016-04-21T10:54:15.330 回答