2

gsoap で Web サービスを作成しています。このコードをコンパイルすると、次のエラーが表示されます:
Syntax Error: Declaration Expected
ベクトルを削除すると、正常にコンパイルされます。

#include <stdsoap2.h>
#include <vector>

//gsoap ns service name:    PersonData
//gsoap ns service style:   document
//gsoap ns service encoding:    literal
//gsoap ns service namespace:   http://localhost/PersonData.wsdl
//gsoap ns service location:    http://localhost:7777
//gsoap ns schema namespace: urn:PersonData



class PersonInfo 
{
 public:
    std::string ID;
    std::string FirstName;
    std::string LastName;
    std::string Sex;
    std::string BirthDate;
    std::string BirthPlace;
    std::string SocialNumber;
};

class MultiplePersons
{
public:
       // It gives error only with vector 
    std::vector<PersonInfo> info; // **here is the error**
};
int ns__getSingleValue(std::string Param, std::string *result);

int ns__getFullRecord(std::string Param, MultiplePersons *result);
4

2 に答える 2

3

唯一のエラーは、インポート ステートメントを含める必要があることです:
#import "stlvector.h"
NOT
#include "stlvector.h"

その前に、stlvector.h ファイルが作業ディレクトリにある必要があります。私の場合、/usr/share/gsoap/import/ からプロジェクト ファイルを保存したデスクトップ フォルダーにコピーしました。
出典: gSoap ドキュメント

于 2013-03-13T05:24:42.310 に答える
0

うーん、おそらく何らかの名前空間の衝突ですか? たとえば、「info」は、stdsoap2.h ヘッダーで宣言されたオブジェクトです。

于 2013-03-13T02:44:54.447 に答える