在我的C ++项目中,我有一个SOAP类:
namespace soapcon
{
[DataContract]
public ref class z
{
public:
[DataMember]
int USN;
};
}
如果USN
成员标记为[DataMember]
,则会收到编译错误syntax error : unexpected type 'USN'
。但是,如果我注释掉[DataMember]
,那么一切都会编译而没有错误。
USN
是WCF使用的类型,还是有其他原因导致此错误?
答案 0 :(得分:0)
结果USN
在C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h
中定义为typedef LONGLONG USN
。
我发现了
typedef int USN;
命名行 命名空间,导致编译器报告报告原始typedef位置的错误。
似乎正在发生的事情是将USN
声明为[DataMember]
会导致编译器查找全局命名空间,并找到USN
的typedef。