美文网首页
error C2059: 语法异常:“常量”

error C2059: 语法异常:“常量”

作者: 苦境名人 | 来源:发表于2018-04-08 17:41 被阅读394次

error C2059: 语法错误:“常量”
为什么会常量呢?
先来看看我的错误出现在哪里,*X509_NAME directoryName;,提示X509_NAME 提示常量。
如何找到这个宏定义呢,在WryCrypt.h

image

1.但是问件中没有包含这个头文件啊?
宏定义如下:
#define X509_NAME ((LPCSTR) 7)
2.发生错误的文件是x509v3.h

image

如图这个文件中包含了#include <openssl/x509.h>文件,进入这个文件,

image

它包含#include <openssl/ossl_typ.h>文件,在<openssl/ossl_typ.h>有两个地方让我觉得很有趣。

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

C++ 宏定义 C2509

分享到:

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

先包含 <openssl/ossl_typ.h>,再包含 X509_NAME *directoryName 定义的头文件呢?
 X509_NAME *directoryName定义的头文件是什么意思,是X509_NAME这个结构体的定义吗,如果是的话,错误还是没解决。
就是说象下面这样。
假如 A.h 里面有 X509_NAME *directoryName; 这句。
那么保证在其它地方 include A.h 之前,先 include <openssl/ossl_typ.h>。
如果 B.cpp 里面有 X509_NAME *directoryName; 这句。
那么一定要在它出现之前的某位置 include <openssl/ossl_typ.h>。
如果你已经这么做了,但仍然出现问题,就当我没说吧,看不到代码我也是连分析带猜的。
------解决方案--------------------
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

相关文章

  • error C2059: 语法异常:“常量”

    error C2059: 语法错误:“常量”为什么会常量呢?先来看看我的错误出现在哪里,*X509_NAME di...

  • 初学C语言

    1。error C2059: syntax error : 'bad suffix on number' 如果出现...

  • 8.错处和异常

    异常,类 语法错误 Error 异常 try:except ... :else:无异常时执行finally:无论如...

  • 异常处理梳理、总结

    1.异常处理 什么是异常:不正常的情况都称为异常! 1语法错误!type error ~写错了!解释器解释执行时就...

  • java

    语法基础1.1 java初体验(语法基础)1.2 变量和常量(语法基础)1.2 变量和常量(语法基础)1.4 流程...

  • swift 语法 do-catch & try

    语法格式 创建自定义的异常枚举,并遵守 Error 协议 主要涉及关键字 throws、throw 的用法 ps:...

  • 2019-11-25

    异常 异常分类 Error Exception 继承关系:Object<-Throwable<-(Error,Ex...

  • 异常处理

    异常定义:运行期间出现的错误,而不是编译时的语法错误。异常体系结构 Error类:特指应用程序在运行期间发生的严重...

  • 02-Swift中的常量与变量

    常量# 常量:值不能被修改,使用let声明 注意:如果对常量a进行修改a = 20,就会报错error: cann...

  • JavaEE归纳(二)

    • 异常 ○ Throwable类是Java中Error(错误)和Exception(异常)的父类○ Error类...

网友评论

      本文标题:error C2059: 语法异常:“常量”

      本文链接:https://www.haomeiwen.com/subject/hkdmhftx.html