Visual c++ visual studio中的catch.hpp错误消息

Visual c++ visual studio中的catch.hpp错误消息,visual-c++,catch-unit-test,Visual C++,Catch Unit Test,使用visual studio 2015使用catch.hpp单元测试编译测试代码。我需要编写与串行端口接口的代码,需要与Widnows API接口,并且需要包含windows.h 但编译器会生成带有以下错误消息的投诉 严重性代码说明项目文件行抑制状态 错误C2888“Catch::color::color(Catch::color::Code)”:无法在名称空间“Catch”NMCR\u测试c:\users\ahajmousa\google drive\cto projects\new mc

使用visual studio 2015使用
catch.hpp
单元测试编译测试代码。我需要编写与串行端口接口的代码,需要与Widnows API接口,并且需要包含
windows.h

但编译器会生成带有以下错误消息的投诉

严重性代码说明项目文件行抑制状态
错误C2888“Catch::color::color(Catch::color::Code)”:无法在名称空间“Catch”NMCR\u测试c:\users\ahajmousa\google drive\cto projects\new mc receiver\software\Testing\NMCR\u Testing\Catch.hpp 7796中定义符号
错误C2888“Catch::color::color(const Catch::color&”):无法在命名空间“Catch”NMCR\u中定义符号测试c:\users\ahajmousa\google drive\cto projects\new mc。。。。

代码:

#包括“stdafx.h”
#包括
#定义CATCH_CONFIG_MAIN
#包括“catch.hpp”
测试用例(“第一次测试”)
{
要求(1==1);
}
测试用例(“第二次测试”)
{
要求(1==0);
}
如果我不包括widnows.h,错误就会消失
有没有一种方法可以让catch.hpp在没有这些错误的情况下进行编译。

目前还不清楚该程序如何生成这些错误消息。但正如所发布的,它肯定无法编译,您必须将#include for window.h移到#include for catch.hpp之后。这将处理必要的NOMINMAX定义。感谢您的响应,在catch.hpp之后移动标头定义修复了问题。目前还不清楚此程序如何生成这些错误消息。但正如所发布的,它肯定无法编译,您必须将#include for window.h移到#include for catch.hpp之后。这将处理必要的NOMINMAX定义。感谢您的响应,在catch.hpp之后移动标题定义修复了此问题。
#include "stdafx.h"
#include <windows.h>

#define CATCH_CONFIG_MAIN
#include "catch.hpp"

TEST_CASE("first Test")
{
    REQUIRE(1 == 1);
}

TEST_CASE("2nd  Test")
{
    REQUIRE(1 == 0);
}