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 呼び出しを行いたいのですが、2 番目のサービス プロキシ オブジェクトが作成される時点でプログラムがクラッシュします。wsdl2h -gbetfair オプションと soapcpp2 -i -n オプションを使用し、C++ 名前空間を使用して複数のクライアント サービスを作成するときにドキュメントで要求されているように新しい env.h ファイルを作成して、 libgsoap++ にリンクするときのリンカー エラーを回避しました。誰が私が間違っているかを見ることができますか???

4

1 に答える 1

0

問題を再現できないため、私の推測ではわかりません。配列の名前空間は、.nsmap ファイル内で定義されます。コードの .nsmap ファイルの #include にコメントがあり、この配列が空の場合、gSOAP が気に入らない可能性があります。#include "betfair.nsmap" をコメントアウトしたままにしておく必要がありますか?

于 2012-05-10T05:09:06.967 に答える