为什么即使已经包含pch.h,我仍会收到警告?

时间:2020-06-24 17:20:14

标签: visual-studio unit-testing pch

我正在尝试重现问题,因此我使用VS2019向导和一个单独的本机单元测试项目创建了一个空的MFC C ++应用程序。

在添加单元测试项目之前,MFC应用程序已成功编译并启动。

MFC应用程序仍然可以成功编译,但是单元测试项目将无法编译。我遇到两个错误:

E0035 #error directive: "include 'pch.h' before including this file for PCH"
C1189 #error: "include 'pch.h' before including this file for PCH"

但是,单元测试项目(UnitTest1.cpp)中唯一的文件已经在文件顶部包含pch.h:

#include "pch.h"
#include "CppUnitTest.h"
#include "../MFCApplication1/MFCApplication1.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest1
{
    TEST_CLASS(UnitTest1)
    {
    public:
        
        TEST_METHOD(TestMethod1)
        {
            CMFCApplication1App app;
            bool result = app.InitInstance();
            Assert::IsTrue(result);
        }
    };
}

这似乎是在告诉我要做已经完成的事情。

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

尝试包括stdafx.h并删除pch.h,即可解决问题