0

最近我有一个使用 gSOAP 构建的小型 C++ SOAP 客户端项目(ubuntu linux)。我正在使用 2 个 Web 服务类,我相信我已经根据文档正确创建了这些类。但是,我的代码有问题

    #include "envH.h"
    #include "betfairBFGlobalServiceProxy.h"
    #include "betfairBFExchangeServiceProxy.h"
    //#include "betfair.nsmap"
    #include <iostream>
    #include <string>
    // Following included to prevent ligsoap++ complaining of undefined references
    // to 'namespaces'
    SOAP_NMAC struct Namespace namespaces[] =  {};

    using namespace std;
    using namespace betfair;


    int main() 
    {
      BFGlobalServiceProxy bf;

      BFExchangeServiceProxy betfair2;  /* CRASH!! */
      return 0;
    }

我想对这两个 Web 服务进行 API 调用,但我的程序在创建第二个服务代理对象时崩溃。在使用 C++ 命名空间创建多个客户端服务时,我使用了 wsdl2h -gbetfair 选项和 soapcpp2 -i -n 选项并创建了一个新的 env.h 文件,以避免链接到 libgsoap++ 时出现链接器错误。谁能看到我做错了什么???

4

1 回答 1

0

我无法重现这个问题,所以我不确定我的猜测。数组命名空间在 .nsmap 文件中定义。您的代码在 .nsmap 文件的#include 中有注释,如果此数组为空,gSOAP 可能不喜欢。您真的必须将#include“betfair.nsmap”注释掉吗?

于 2012-05-10T05:09:06.967 回答