2013-10-14 4 views
0

GSOAP 호출을 만들기 위해 C 코드에서 다형성을 사용하는 wsdl을 사용해야했습니다. GSOAP 문서 (8.2 데이터 바인딩을 사용하여 typemap.dat 파일 사용자 정의)에 따라, 기본 유형을 랩퍼 유형으로 재 명명하는 typemap.dat를 수정해야합니다. 이후로는 사용법을 변경하여 문서에서 제안한대로 선언 섹션에서 elipsis (...)를 사용했지만 wsdl2h는 엘리 플리스를 이해하고 출력 헤더 파일에 그대로 두는 것처럼 보이지 않습니다. 코드 작성 중에 구문 오류가 발생합니다. 바인딩 다형성에 대한 typemap.dat에서 수행wsdl2h 선언 부분에 제공된 elipsis (...)을 이해할 수 없습니다.

추가 :

[ 
struct __ns__PolymorphicStruct 
{ 
    int __type; 
    void *__item; 
    struct ns__PolymorphicStruct *__self; 
}; 
] 
ns__PolymorphicStruct = ... | struct __ns__PolymorphicStruct | struct __ns__PolymorphicStruct 

사람이 돕거나 내가 여기에 뭔가 잘못하고 있어요 경우 지적시겠습니까?

답변

0

줄임표는 wsdl2가 생성 한 ns__PolymorphicStruct 정의를 나타 내기위한 것이기 때문에 두 가지 선언으로 끝납니다.

사용 :

[ 
struct __ns__PolymorphicStruct 
{ 
    int __type; 
    void *__item; 
    struct ns__PolymorphicStruct *__self; 
}; 
] 
ns__PolymorphicStruct = | struct __ns__PolymorphicStruct | struct __ns__PolymorphicStruct 

또는 다음을 사용 (ns__PolymorphicStruct의 최우선 선언의 배치는 비록 변경됩니다) :

\는 선언이에 계속 허용하는 데 사용됩니다
ns__PolymorphicStruct = \ 
struct __ns__PolymorphicStruct\ 
{\ 
    int __type;\ 
    void *__item;\ 
    struct ns__PolymorphicStruct *__self;\ 
};\ 
| struct __ns__PolymorphicStruct | struct __ns__PolymorphicStruct 

다음 줄.