2013-03-13 3 views
2

Я пишу веб-сервис в gsoap. Когда я скомпилировать этот код, он дает мне ошибку:
Синтаксическая ошибка: Декларация Ожидаемая
Когда я удалить вектор, он успешно компилируется,Ошибка синтаксиса: ожидается ожидание. Почему gsoap не может читать вектор?

#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); 
+2

Уверенный '' включен в любом месте? – chris

+0

но я думаю не имеет к этому никакого отношения. Я также пробовал эту опцию, но никаких изменений в ошибке. – Kahn

+0

Ну, вы не всегда можете рассчитывать на то, что он включен в другой заголовок. – chris

ответ

3

Единственная ошибка в том, что вы должны быть включены оператор импорта:
#import "stlvector.h"
НЕ
#include "stlvector.h"

До этого stlvector.h файл должен находиться в вашем рабочем каталоге. В моем случае я скопировал файл/usr/share/gsoap/import/в папку «Мой рабочий стол», где я сохранил файлы проекта.
Источник: gSoap Документация

+0

спасибо. Это решило мою проблему. – Kahn

0

Хм, возможно, пространство имен столкновение какой-то? Например, «информация» - это объект, объявленный в заголовке stdsoap2.h.

+0

Я также пробовал другие имена, но это, похоже, не проблема. – Kahn

+0

Конечно, странно. Проблема, похоже, не в том коде, который вы включили. Насколько я могу судить, вы не используете заголовок мыла в выпадающем списке, который вы включили. Возможно, попробуйте прокомментировать это и посмотреть, не исчезла ли проблема. Как и в большинстве заголовков, у него, вероятно, есть справедливая бит условной компиляции, основанной на платформе. Может быть, у него есть ошибка, которая появляется на вашей платформе. Возможно, неплохо было бы взглянуть на предварительно обработанный файл (используйте только -E для предварительной обработки). –

+0

Когда я комментирую std :: vector info; программа успешно компилируется. Единственная проблема заключается в векторной части. – Kahn

 Смежные вопросы

  • Нет связанных вопросов^_^