2014-06-24 6 views
0

C++에서 서버 - 클라이언트 webservice를 생성하기 위해 GSOAP 설명서를 따르려고합니다. 여기 GSOAP의 컴파일 오류 C++

내 서버의 코드의 일부이다 :

#include "soapServiceProxy.h" 
#include "Service.nsmap" 
int main(void) 
{ 
ServiceProxy service; 
double result; 

if (service.add(1.0,2.0,result) == SOAP_OK) // Here is the error 
    std::cout << "The sum of 1.0 and 2.0 is " << result << std::endl; 
else 
    service.soap_stream_fault(std::cerr); 

service.destroy(); // delete data and release memory 

return 0; 

} 내가 wsdl2h의 qnd와 모든 differents의 단계를 따랐다

: 여기

int main() 
{ 
    return soap_serve(soap_new()); // use the service operation request dispatcher 
} 
// Implementation of the "add" service operation: 
int ns__add(struct soap *soap) 
{ 
    return SOAP_OK; 
} 

struct Namespace namespaces[] = 
{ // {"ns-prefix", "ns-name"} 
    { "SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/" }, 
    { "SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/" }, 
    { "xsi", "http://www.w3.org/2001/XMLSchema-instance" }, 
    { "xsd", "http://www.w3.org/2001/XMLSchema" }, 
    { "ns", "urn:simple-calc" }, // bind "ns" namespace prefix 
    { NULL, NULL } 
}; 

그리고 나의 클라이언트입니다 soapcpp2 그러나 service.add에 대한 컴파일 오류가 있는데 그 이유는 함수가 아닌 인수가 인수 목록과 일치한다는 것입니다.

오류 : ServiceProxy이 :: 추가 "는 overladed 기능 없음 인스턴스", " 유형은 인수 목록을 natches (더블, 더블, 더블)"

사람은 이유를 이해합니까?

+0

실제 (완료 및 수정되지 않은) 오류 메시지를 표시하면 매우 유용합니다. 또한 그들이 어떤 라인을 가리키고 있는지 알려주십시오. –

답변

0

(double, double, double)과 같은 인수를 사용하지 않는 함수를 정의했습니다. 대신 soap struct 만 사용합니다. 잘못된 매개 변수로 함수를 호출하거나 정의하지 않았습니다. 그것은 당신 wsdl 또는 헤더 파일에서 볼 수 있습니다.