排错实战 —— 解决 c++ 工程编译错: error C2059 'string' illegal token on right side of xxx

本文详细记录了一次解决C++编译错误C2059的过程,该错误由宏定义冲突引起。通过分析错误提示、搜索宏定义和查看预处理后的文件,最终找到并修复了问题。
摘要由CSDN通过智能技术生成
总结 排错 vs 编译错误 错误列表 输出窗口

排错排到编译

缘起

最近,项目里出现了一个奇怪的编译错误。乍看错误提示,真有丈二的和尚,摸不着头脑的感觉。解决之后,又是这么的合情合理。具体是什么样的问题呢?一起来看看吧。

**说明:**实际项目中的错误隐藏的更深,完全没有相关的错误提示。因为不方便用项目代码演示,准备了一个简单的例子,大家可以新建一个控制台工程,并把下面的代码粘贴到对应的文件里。

示例代码简介

示例代码比较简单,共有五个关键文件,加起来不到 40 行代码。大家可以先观察一下代码,思考编译是否会遇到问题。

// NameCollisionDemo.cpp
#include "ModifyInfoTest.h"
int wmain(int argc, wchar_t* argv[])
{
  Test();
  return 0;
}

// ModifyInfo.h
#pragma once
class CModifyInfo
{
public:
  enum class eSource { None = 0, BayWindow, Beam };
  CModifyInfo(eSource source_) : source(source_) {}
  eSource source;
};

// ModifyInfoTest.h
#pragma onc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值