错误c 2059:语法错误:“常量”
为什么会是常数呢?
先看看我的错误在哪里,*X509_NAME directoryName; 并指示X509_NAME指定常量。
如何找到这个宏的定义? 在WryCrypt.h上
图像
1 .但是,问句中是否包含此头文件?
宏的定义如下。
#definex509_name((lpcstr )7) ) )。
2 .发生错误的文件为x509v3.h
图像
此文件包含#include文件。 进入此文件,
图像
包含#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
typedefstructx 509 _ name _ ST x509 _ name;
在我的理解中,我首先取消了一些宏观定义。 这里只关心一个叫X509_NAME的宏定义。 此宏定义已取消。 然后将struct X509_name_st定义为X509_NAME。 也就是说,X509_NAME当前表示结构。
在包含的x509.h中,取消了X509_NAME宏的定义,如图3所示。 那么,X509_NAME应该是空的,没有任何意义,为什么会报告常数错误呢?
c宏定义C2509
共享到:
---------解决办法----------
首先,是否要包括x509 _ name *目录名称定义的头文件?
x509 _ name *目录名称中定义的头文件是什么意思? 是一个叫X509_NAME的结构的定义吗? 如果是这样的话,错误还没有解决。
说如下。
如果A.h中有X509_NAME *directoryName; 这句话。
那么,我保证在其他地方include A.h之前,先include。
b .如果CPP包含x509 _ name *目录名称; 这句话。
必须在那个出现之前的某个地方进行include。
如果你已经这么做了,但还出现问题,请当做我没有说。 我也用分析带推测看不到代码。
---------解决办法----------
遇到同样的问题也有帮助
“每次用/*.*/注释掉不同的部分,然后重新编译,直到具体语法位于错误的位置。 ”
可以解决。