gSoap 客户端,LNK2019,Qt
gSoap client side, LNK2019, Qt
我有点新(只知道如何生成 semi-working 服务器)到 gSoap.And gSoap 的客户端,所以我有多个 LNK2019 的问题。
但是,要事第一
首先,我用这个命令生成了KursServer.h:
wsdl2h -s -o KursServer.h KursWeb.wsdl
生成了 KursWeb.wsdl,然后我开发了我的服务器,并且是从我的 header 创建的,具有必要的功能,他和我一起工作得很好。
这里是这个文件的 "code":
//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);
之后我执行了这个命令:
soapcpp2 -i -C -L -IC:/Users/Senso/Desktop/gsoap_2.8.30/gsoap-2.8/gsoap/import KursServer.h
并创建了一些客户端内容:soapKursWebProxy(h 和 cpp)、soapH、soapC,还包括 stdsoap2(h 和 cpp)
在此之后,我创建了我的 Qt 项目,包括所有文件(它们都在我的项目中的同一个 soap 文件夹中)和所有包含,就像我为服务器所做的那样 -
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 *)" (?soap_serialize___ns1__contextCheck@@YAXPEAUsoap@@PEBU__ns1__contextCheck@@@Z) в функции "public: virtual int __cdecl KursWebProxy::contextCheck(char const *,char const *,class _ns2__contextCheck *,class _ns2__contextCheckResponse &)" (?contextCheck@KursWebProxy@@UEAAHPEBD0PEAV_ns2__contextCheck@@AEAV_ns2__contextCheckResponse@@@Z)
像这样:
soapKursWebProxy.obj:-1: error LNK2019: unresolved external symbol soap_faultstring referenced in function "public: virtual char const * __cdecl KursWebProxy::soap_fault_string(void)" (?soap_fault_string@KursWebProxy@@UEAAPEBDXZ)
像这样很奇怪:
stdsoap2.obj:-1: error LNK2019: unresolved external symbol soap_faultcode referenced in function soap_set_fault
我应该定义我所有的功能,就像我在服务器端所做的那样,或者我需要如何处理它们?
提前致谢!
编辑: 尝试使用 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 编译器在构建时崩溃
突然我解决了它 - 我使用了 "bad" 编译器,安装 Qt 后 bcs 一切正常。喜欢 Qt 的错误。
我有点新(只知道如何生成 semi-working 服务器)到 gSoap.And gSoap 的客户端,所以我有多个 LNK2019 的问题。
但是,要事第一
首先,我用这个命令生成了KursServer.h:
wsdl2h -s -o KursServer.h KursWeb.wsdl
生成了 KursWeb.wsdl,然后我开发了我的服务器,并且是从我的 header 创建的,具有必要的功能,他和我一起工作得很好。
这里是这个文件的 "code":
//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);
之后我执行了这个命令:
soapcpp2 -i -C -L -IC:/Users/Senso/Desktop/gsoap_2.8.30/gsoap-2.8/gsoap/import KursServer.h
并创建了一些客户端内容:soapKursWebProxy(h 和 cpp)、soapH、soapC,还包括 stdsoap2(h 和 cpp)
在此之后,我创建了我的 Qt 项目,包括所有文件(它们都在我的项目中的同一个 soap 文件夹中)和所有包含,就像我为服务器所做的那样 -
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 *)" (?soap_serialize___ns1__contextCheck@@YAXPEAUsoap@@PEBU__ns1__contextCheck@@@Z) в функции "public: virtual int __cdecl KursWebProxy::contextCheck(char const *,char const *,class _ns2__contextCheck *,class _ns2__contextCheckResponse &)" (?contextCheck@KursWebProxy@@UEAAHPEBD0PEAV_ns2__contextCheck@@AEAV_ns2__contextCheckResponse@@@Z)
像这样:
soapKursWebProxy.obj:-1: error LNK2019: unresolved external symbol soap_faultstring referenced in function "public: virtual char const * __cdecl KursWebProxy::soap_fault_string(void)" (?soap_fault_string@KursWebProxy@@UEAAPEBDXZ)
像这样很奇怪:
stdsoap2.obj:-1: error LNK2019: unresolved external symbol soap_faultcode referenced in function soap_set_fault
我应该定义我所有的功能,就像我在服务器端所做的那样,或者我需要如何处理它们?
提前致谢!
编辑: 尝试使用 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 编译器在构建时崩溃
突然我解决了它 - 我使用了 "bad" 编译器,安装 Qt 后 bcs 一切正常。喜欢 Qt 的错误。