我的源代码中有以下行,它们给出了错误
错误C2275:'HPDF_Array':非法使用此类型作为表达式“ : 这是头文件中的实际代码:
typedef struct _HPDF_Array_Rec *HPDF_Array;
typedef struct _HPDF_Array_Rec {
HPDF_Obj_Header header;
HPDF_MMgr mmgr;
HPDF_Error error;
HPDF_List list;
} HPDF_Array_Rec;
HPDF_Array id;
如何解决此错误?
答案 0 :(得分:0)
此代码适用于我的编译器(gcc 4.7.1),因此如果您仍遇到问题,可能需要显示更多代码或信息:
// content of this struct is irrelevant, so I just made a dummy struct
struct _HPDF_Array_Rec {
int dummy;
};
typedef struct _HPDF_Array_Rec *HPDF_Array;
HPDF_Array id;
您问题中的代码所做的是将 HPDF_Array 类型定义为 struct _HPDF_Array_Rec 类型的指针,并实例化一个 HPDF_Array (这是一个名为id
的指向_HDPF_Array_Rec结构的指针修改强>
代码仍然正常。我用谷歌搜索了错误代码并得到了这个:
http://msdn.microsoft.com/en-us/library/76c9k4ah(v=vs.71).aspx
An expression uses the -> operator with a typedef identifier.
检查您的代码是否存在此类错误。你正在做的任何地方 HPDF_Array->某事而不是 id->某事? :)
答案 1 :(得分:0)
如果您在编译hpdf_pdfa.c
文件时遇到错误,请移动
HPDF_Array id;
行到HPDF_PDFA_GenerateID(HPDF_Doc pdf)
函数的开头。
似乎2.2.1分支是作为C ++代码构建的,并且提交者没有注意到错误。在主干分支中,此错误已得到修复。