error C2059: 语法错误:“常量”

为什么会常量呢?

先来看看我的错误出现在哪里,*X509_NAME directoryName;,提示X509_NAME 提示常量。

如何找到这个宏定义呢,在WryCrypt.h

image

1.但是问件中没有包含这个头文件啊?

宏定义如下:

#define X509_NAME ((LPCSTR) 7)

2.发生错误的文件是x509v3.h

image

如图这个文件中包含了#include 文件,进入这个文件,

image

它包含#include 文件,在有两个地方让我觉得很有趣。

#ifdef OPENSSL_SYS_WIN32

#undef X509_NAME

#undef X509_EXTENSIONS

#undef X509_CERT_PAIR

#undef PKCS7_ISSUER_AND_SERIAL

#undef OCSP_REQUEST

#undef OCSP_RESPONSE

#endif

typedef struct X509_name_st X509_NAME;

我的理解是:先取消了几个宏定义,这里只关心X509_NAME这个宏定义,这个宏定义已被取消。接下来又将struct X509_name_st定义为X509_NAME.也就是说X509_NAME现在代表一个struct。

而在包含的x509.h中又取消了X509_NAME宏定义,如第三图所示。那么现在X509_NAME应该为空不代表任何东西,为什么会报常量错误呢?

C++ 宏定义 C2509

分享到:

------解决方案--------------------

先包含 ,再包含 X509_NAME *directoryName 定义的头文件呢?

X509_NAME *directoryName定义的头文件是什么意思,是X509_NAME这个结构体的定义吗,如果是的话,错误还是没解决。

就是说象下面这样。

假如 A.h 里面有 X509_NAME *directoryName; 这句。

那么保证在其它地方 include A.h 之前,先 include 。

如果 B.cpp 里面有 X509_NAME *directoryName; 这句。

那么一定要在它出现之前的某位置 include 。

如果你已经这么做了,但仍然出现问题,就当我没说吧,看不到代码我也是连分析带猜的。

------解决方案--------------------

偶遇到类似问题都是用

“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”

的方法解决的。

c语言代码错误c2059,error C2059: 语法异常:“常量”相关推荐

  1. c语言中错误c2061,error C2061: 语法错误: 标识符“_Wherenode”

    昨天同事说,类里加了个静态的vector类型的公共成员后,在其他类里调用,操作该成员,编译出错. 1>d:\program files\microsoft visual studio 9.0\v ...

  2. 解决matlab 关于警告(warning)、错误(error)、异常(exception)与断言(assert)问题总结

    在使用matlab中难免会遇到警告(warning).错误(error).异常(exception)与断言(assert)等问题,那如何解决呢??? 本文将从警告(warning).错误(error) ...

  3. c语言代码错误c2059,c++代码错误error C2059:?

    c++代码错误error C2059:?0 代码如下://Circle.cpp文件,类CCircle的成员函数的实现 #include "circle.h" double CCir ...

  4. 排错实战——解决c++编译错误:error C2059: illegal token on right side of '::'

    缘起 最近,项目里出现了一个奇怪的编译错误.乍看错误提示,真有丈二的和尚,摸不着头脑的感觉.解决之后,又是这么的合情合理.具体是什么样的问题呢?一起来看看吧. 说明: 实际项目中的错误隐藏的更深,完全 ...

  5. 错误 2 error C2059: 语法错误:“::”

    设置项目属性,在预定义处理器中添加定义NOMINMAX来禁止使用Vsual C++的min/max宏定义. 项目属性   --> C/C++ --> 预处理器 --> 预处理器定义 ...

  6. c语言中错误c2228,error C2228:left of '.Push' must have class/struct/union type

    error C2228:left of '.Push' must have class/struct/union type0 一串都是这个错误 头疼死了 我怎么就发现不了哪里错了 分不多 麻烦了 谢谢 ...

  7. R语言出现错误:Error in RStudioGD() : Shadow graphics device error: r error 4 (R code execution error)

    解决方法1:Ctrl + Shift + F10 to restart your R session 解决方法2:不用重启,直接运行下面的代码重新生成临时文件(推荐) dir.create(tempd ...

  8. intellij idea 代码错误设置 Error 提示颜色修改

    File--->Settings --->Editor --->ColorScheme--->General --->Errors and Warning--->E ...

  9. matlab 警告(warning)、错误(error)、异常(exception)与断言(assert)

    0. 消息标识符(Message Identifiers) 消息标识符,是附加在 error 和 warning 语句上的一个标签,以被 matlab 做唯一性标识. warning 语句所支持的函数 ...

最新文章

  1. java 计算移动平均线_基于Java语言开发的个性化股票分析技术:移动平均线(MA)...
  2. C++ 函数模板特化导致的多重定义链接错误
  3. git学习------gt;Git 分支管理最佳实践
  4. 数据结构与算法 -- 队列 ADT
  5. 分布式网站架构后续:zookeeper技术浅析
  6. Chrome让人失望,是时候转到Firefox或Edge?
  7. druid加密mysql_Druid 数据库用户密码加密 代码实现
  8. Essential Grouping高性能的数据分组引擎介绍及下载
  9. 通过递归遍历n位2进制数的所有情况
  10. jsp页面播放服务器视频
  11. pyqt5下pushButton框保留用户历史输入
  12. Android 用户可以直接在搜索页面上安装 app 了
  13. Arcgis 如何将大量数据转换成csv导出
  14. 安装MATLAB2016a的完整步骤
  15. .gliffy文件怎么打开和gliffy的免费试用两周
  16. adapterview android,[Android]ListView+AdapterView
  17. 4大MQ消息队列的比较
  18. 怎么查看ubuntu虚拟机ip地址?
  19. TDW计算引擎解析——Scheduler
  20. 做程序员累了想要转行?我想给大家分享一下看法

热门文章

  1. MDK软件,利用ARM仿真器调试与下载 华大单片机
  2. MySQL基本操作总结
  3. 关于Android类似qq和微信那种在桌面图标右上角更新数字的研究
  4. 如何检测远程服务器端口是否打开,如何远程查看服务器端口是否打开
  5. 匿名信H5系统UI设计图美术作品登记证书
  6. java教程网站_Java教程
  7. Rails配置(一)——安装rails
  8. 申请发明专利为何同时申请实用新型专利
  9. 国内如何下载Vega
  10. 关于学习ssh框架的体会