gsoap使用名称空间的不完整类型'struct SOAP_ENV__Header'

时间:2019-01-10 12:10:45

标签: c++ namespaces gsoap

我有一个实现与多个服务器通信的应用程序。我用肥皂产生我的要求。 为了防止在不同的链接之间进行冲突,我使用名称空间。 我已经用

生成了文件
wsdl2h -t /path/to/gsoap/typemap.dat namespace1.wsdl
soapcpp2 -C -L -qnamespace1 element1.h

如文档(19.39如何在C ++代码命名空间中构建客户端或服务器)中所示,我还使用env.h生成文件。我的文件env.h为空。 soapcpp2 -penv env.h

我已将不同的文件添加到我的projet(Qt)中:

  • element1C.cpp
  • element1Client.cpp
  • envC.cpp
  • element1H.h
  • element1Stub.h
  • envH.h
  • envStub.h

我可以轻松生成请求。 我的问题是何时要获取soap对象的“ fault”或“ header”参数。我有错误:

  

../ GSoap / main.cpp:103:27:错误:成员访问权限不完整   'struct SOAP_ENV__Header'

     

../ GSoap / main.cpp:104:45:错误:成员对不完整类型'struct SOAP_ENV__Fault'的访问

这是我的代码:

#include "elemen1H.h"
#include "envH.h"

using namespace namspace1;    

int main(int argc, char *argv[])
{   
    soap soapObj;
    soap_init(&soapObj);

    // *******  Opération 
    _ns1__Subtract inSubtractParam;
    ...
    inSubtractParam.soap = &soapObj;
    _ns1__SubtractResponse outSubtractParam;
    outSubtractParam.soap = &soapObj;

    soap_call__ns1__Subtract(&soapObj, NULL, NULL, &inSubtractParam, outSubtractParam);

    if(soapObj.fault) {
        SOAP_ENV__Fault *fault = soapObj.fault;
        ...
    }
    ...

    return 0;
}

我不知道问题出在哪里。 谢谢您的帮助

0 个答案:

没有答案