2016-05-11 2 views
0

Я новичок (знаю только, как генерировать полурабочий сервер) в gSoap. И как таковой на стороне клиента gSoap, поэтому у меня проблема с несколькими LNK2019.gSoap клиентская сторона, LNK2019, Qt

Но первые вещи первые

Прежде всего, я сгенерировал KursServer.h с этой командой:

wsdl2h -s -o KursServer.h KursWeb.wsdl 

KursWeb.wsdl был сгенерирован, то я разработал свой сервер, и был создан из мой заголовок с необходимыми функциями, и он отлично работает со мной.

здесь является "код" этого файла:

//gsoap WebFunctions service name: KursWeb 
//gsoap WebFunctions service location: http://192.168.0.101:18083 
int WebFunctions__delivered(char* UCID, char* DeviceNum, void); 
int WebFunctions__established(char* UCID, char* DeviceNum, void); 
int WebFunctions__connectionCleared(char* UCID,char* DeviceNum, void); 
int WebFunctions__transfered(char* UCID, char* transNum1, char* transNum2, char* destenation, void); 
int WebFunctions__holded(char* UCID, char* DeviceNum, void); 
int WebFunctions__retrieved(char* UCID, char* DeviceNum, void); 
int WebFunctions__setContextParametr(char* UCID, char* DeviceNum, char* Parametr, void); 
int WebFunctions__getContextParametr(char* UCID, char* DeviceNum, char* result); 
int WebFunctions__contextCheck(char* UCID, bool& ok); 

Afther, что я сделал эту команду:

soapcpp2 -i -C -L -IC:/Users/Senso/Desktop/gsoap_2.8.30/gsoap-2.8/gsoap/import KursServer.h 

и создал некоторый клиент - побочный материал: soapKursWebProxy (ч и CPP), soapH, soapC, а также включил stdsoap2 (h и cpp)

После этого я создал свой проект Qt, включил все файлы (все они в одной папке с мылом внутри моего проекта) и все, что я сделал для сервиса э -

main.cpp

#include "mainwindow.h" 
#include <QApplication> 
#include "soap/KursWeb.nsmap" 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.show(); 

    return a.exec(); 
} 

mainwindow.cpp

#include "mainwindow.h" 
#include "ui_mainwindow.h" 
#include "soap/soapKursWebProxy.h" 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    /*just test*/ 

} 

mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include <QSqlDatabase> 
#include <QSqlQuery> 
#include <QSqlError> 
#include <QDebug> 

namespace Ui { 
class MainWindow; 
} 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 

private: 
    Ui::MainWindow *ui; 

}; 

#endif // MAINWINDOW_H 

И после того, как я попытался собрать это, я получаю тонны ошибок, (все ссылаются на ns1):

soapKursWebProxy.obj:-1: error LNK2019: unresolved external symbol "void __cdecl soap_serialize___ns1__contextCheck(struct soap *,struct __ns1__contextCheck const *)" ([email protected]@[email protected]@[email protected]@@Z) в функции "public: virtual int __cdecl KursWebProxy::contextCheck(char const *,char const *,class _ns2__contextCheck *,class _ns2__contextCheckResponse &)" ([email protected]@@[email protected]@[email protected]@@Z) 

и так:

soapKursWebProxy.obj:-1: error LNK2019: unresolved external symbol soap_faultstring referenced in function "public: virtual char const * __cdecl KursWebProxy::soap_fault_string(void)" ([email protected]@@UEAAPEBDXZ) 

и очень странно, как это:

stdsoap2.obj:-1: error LNK2019: unresolved external symbol soap_faultcode referenced in function soap_set_fault 

Должен ли я определить все мои функции, как я сделал обратно на стороне сервера, или как мне нужно, чтобы справиться с ними ?

Спасибо заранее!

EDIT: судимых использовать MinGW компилятор, дал мне

C:\Users\Senso\Documents\Client_MVSC_Kurs_III\soap\stdsoap2.cpp:12627: error: 'wctomb_s' was not declared in this scope 
      wctomb_s(&m, buf, sizeof(buf), (wchar_t)(c & 0x7FFFFFFF)); 
                   ^

Кроме того, некоторые другие компиляторы MSVC просто падает на сборке

ответ

0

Внезапно я решить ее - я использовал «плохой» компилятор, bcs после переустановки Qt evrything работал отлично. Love Qt для этих ошибок.