⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctuxedothread.h

📁 调用tuxedo服务的dll库的源代码。其中用到了c++ qt 库4.3。
💻 H
字号:
#ifndef CTUXEDOTHREAD_H
#define CTUXEDOTHREAD_H
#include <afxcmn.h>
#include <QObject>
#include <QString.h>
#include <QThread.h>
#include <fml32.h>
#include <atmi.h> 
//#include "tsengineqt.h"
#define MSG_TUX_INIT_OK 10
#define MSG_TUX_INIT_FAILED 11
#define MSG_TUX_CALL_OK 12
#define MSG_TUX_CALL_FAILED 13
#define MSG_TUX_TERM_OK 14
#define MSG_TUX_TERM_FAILED 15

#define ERROR_TUX_ALREADY_INITED -1
#define ERROR_BUFF_NOT_ALLOCATED -2
#define ERROR_BUFF_ALLOC_FAILED -3
#define ERROR_FML_LIB_NOT_FOUND -4
#define ERROR_FML_LIB_VERSION_INVALID -5
#define ERROR_TUX_LIB_NOT_FOUND -6
#define ERROR_TUX_LIB_VERSION_INVALID -7
#define ERROR_TUX_NOT_INITED -8
#define ERROR_THREAD_NOT_EXIST -9
#define ERROR_FML_CALL_ALREADY_RUNNING -10
#define ERROR_FML_CALL_REPLY_TIMEOUT -11

#define STATUS_CLOSED 0
#define STATUS_INITIALIZING 1
#define STATUS_IDLE 2
#define STATUS_CALLING 3
#define STATUS_ERROR 3

typedef void (__stdcall * TUXCALLBACK)(long eventID,long Param1,long Param2);

typedef struct _FunTuxedo
{
 char * (_TMDLLENTRY *tpalloc)(char _TM_FAR *,char _TM_FAR *,long);
 int (_TMDLLENTRY *tpcall) (char _TM_FAR *, char _TM_FAR *, long, char _TM_FAR * _TM_FAR *, long _TM_FAR *, long);
 //_TMDLLENTRY tpcall _((char _TM_FAR *, char _TM_FAR *, long, char _TM_FAR * _TM_FAR *, long _TM_FAR *, long));
 int (_TMDLLENTRY *tpacall )(char _TM_FAR *, char _TM_FAR *, long, long); int (_TMDLLENTRY *tpgetrply)(int _TM_FAR *, char _TM_FAR * _TM_FAR *, long _TM_FAR *, long); int (_TMDLLENTRY *tpcancel)(int);
 int (_TMDLLENTRY *tpabort)(long); int (_TMDLLENTRY *tpbegin)(unsigned long, long); int (_TMDLLENTRY *tpcommit)(long);

 int(_TMDLLENTRY *tpinit)(TPINIT _TM_FAR *);
 int (_TMDLLENTRY *tpterm)(void);
 void(_TMDLLENTRY *tpfree)(char _TM_FAR *);
 void(_TMDLLENTRY *tuxputenv)(char _TM_FAR *);
 //int (_TMDLLENTRY *tperrno)();
 char * (_TMDLLENTRY * tpstrerror)(long);
 int (_TMDLLENTRY *Fget32)(FBFR32 _TM_FAR *,FLDID32,FLDOCC32,char _TM_FAR *,FLDLEN32 _TM_FAR *);
 int (_TMDLLENTRY *Fchg32)(FBFR32 _TM_FAR *,FLDID32,FLDOCC32,char _TM_FAR *,FLDLEN32);
 long (_TMDLLENTRY *tperrordetail) (long); char _TM_FAR * (_TMDLLENTRY *tpstrerrordetail) (long, long);
 HMODULE hLibfml32; // libfml32.dll 动态库句柄
 HMODULE hWtuxws32; // wtuxws32.dll 动态库句柄
 //FLDOCC32 (_TMDLLENTRY *Foccur32)( FBFR32 _TM_FAR *,FLDID32);

}FUNTUXEDO,*PFUNTUXEDO;
class CTuxedoThread : public QThread
{
	Q_OBJECT

public:
	//CTuxedoThread(QObject *parent);
	CTuxedoThread();
	~CTuxedoThread();
	int TuxInit(char * WSNADDR,char *userName,char *pwd,char * cltName,char * grpName,bool bAsync, TUXCALLBACK cbAddress);
    int TuxSetupCall(char * SrvName, char *inputBuf,char **outputBuf,long * outputLen);
	int TuxFmlSetupCall(char * SrvName);
	int TuxFmlAllocBuf(long nSndBufLen,long nRcvBufLen);
	int TuxFmlFreeBuf();
	int TuxFmlSetSndFld(long FldID,long nRow, char * pValue,long nLen);
	int TuxFmlGetRcvFld(long FldID,long nRow, char * pValue,long * nLen);
	int TuxFmlRunCall();
	int TuxFmlRunCallA();
	int TuxStrRunCall();
	int KeepConnection();
	int WebSrvInit(char * wsdlAddr,char * servName,char * portName, char * userName, char * pwd);
	bool m_bForInitOrCall;   
	int RunInit();
	char cc[20];
	bool m_bJustFinished;
	long m_msgID;
	QString m_msgDesc;
	long m_ErrID;
	bool m_bAsync;
    long m_ID;
	//bool m_bFmlCallOK;
	bool m_bPretendInit;
	bool m_bCalling;
signals:
	void Inited(int i);
public slots:
	void myInited(int i)
	{
	  int jj=0;	
	};
    void OnFinished()
	{
		int jj=0;
	};
	
protected:
     
     void run();
       

private:
	QString action;
    
	//char * m_WSNADDR;char *m_userName;char *m_pwd;char * m_cltName;char * m_grpName; TUXCALLBACK m_cbAddress;
    char m_WSNADDR[200];char m_userName[30];char m_pwd[30];char m_cltName[50];char m_grpName[50]; TUXCALLBACK m_cbAddress;
	char *m_inputBuf;char ** m_outputBuf;long * m_outputLen;
	//char * m_SrvName; 
    char m_SrvName[100]; 
	FBFR32 * m_pSndBufFML;
	FBFR32 *m_pRcvBufFML;
	long m_nSndBufLen;
	long m_nRcvBufLen;
	

};

#endif // CTUXEDOTHREAD_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -