A
akay
Unregistered / Unconfirmed
GUEST, unregistred user!
下面这段代码是用C++写的tuxedo服务的一部分
我想尝试下用delphi来编写tuxedo服务,但这个c++的结构比较复杂
恳请高人帮忙,谢谢
#include <stdio.h>
#include <xa.h>
#include "c_demo.h"
#include <atmi.h>
#include <userlog.h> /*TUXEDO H*/
//服务端初始化服务
#if defined(__STDC__) || defined(__cplusplus)
tpsvrinit(int argc, char *argv[])
#else
tpsvrinit(argc, argv)
int argc;
char **argv;
#endif
{
argc = argc;
argv = argv;
tpopen();
return 0;
}
//服务端结束服务
void tpsvrdone()
{
tpclose();
}
#if defined(__cplusplus)
extern "C" {
#endif
extern int _tmrunserver _((int));
extern void TUDEMO _((TPSVCINFO *));
#if defined(__cplusplus)
}
#endif
static struct tmdsptchtbl_t _tmdsptchtbl[] = {
{ (char*)"TUDEMO", (char*)"TUDEMO", (void (*) _((TPSVCINFO *))) TUDEMO, 0, 0 },
{ NULL, NULL, NULL, 0, 0 }
};
#ifndef _TMDLLIMPORT
#define _TMDLLIMPORT
#endif
#if defined(__cplusplus)
extern "C" {
#endif
_TMDLLIMPORT extern struct xa_switch_t xaosw;
#if defined(__cplusplus)
}
#endif
typedef void (*tmp_void_cast)();
typedef void (*tmp_voidvoid_cast)(void);
typedef int (*tmp_intchar_cast)(int, char **);
typedef int (*tmp_int_cast)(int);
struct tmsvrargs_t tmsvrargs = {
NULL,
&_tmdsptchtbl[0],
0,
(tmp_intchar_cast)tpsvrinit,
(tmp_voidvoid_cast)tpsvrdone,
(tmp_int_cast)_tmrunserver, /* PRIVATE */
NULL, /* RESERVED */
NULL, /* RESERVED */
NULL, /* RESERVED */
NULL, /* RESERVED */
(tmp_intchar_cast)tpsvrthrinit,
(tmp_voidvoid_cast)tpsvrthrdone
};
struct tmsvrargs_t *
#ifdef _TMPROTOTYPES
_tmgetsvrargs(void)
#else
_tmgetsvrargs()
#endif
{
tmsvrargs.reserved1 = NULL;
tmsvrargs.reserved2 = NULL;
tmsvrargs.xa_switch = &xaosw;
return(&tmsvrargs);
}
int
#ifdef _TMPROTOTYPES
main(int argc, char **argv)
#else
main(argc,argv)
int argc;
char **argv;
#endif
{
#ifdef TMMAINEXIT
#include "mainexit.h"
#endif
return( _tmstartserver( argc, argv, _tmgetsvrargs()));
}
#ifdef __cplusplus
extern "C"
#endif
void TUDEMO(TPSVCINFO *rqst)
{
long nRet;
{
TCDemo Demo;
Demo.Do(rqst);
nRet = Demo.GetRetCode();
}
tpreturn(TPSUCCESS, nRet, NULL, 0, 0);
}
我想尝试下用delphi来编写tuxedo服务,但这个c++的结构比较复杂
恳请高人帮忙,谢谢
#include <stdio.h>
#include <xa.h>
#include "c_demo.h"
#include <atmi.h>
#include <userlog.h> /*TUXEDO H*/
//服务端初始化服务
#if defined(__STDC__) || defined(__cplusplus)
tpsvrinit(int argc, char *argv[])
#else
tpsvrinit(argc, argv)
int argc;
char **argv;
#endif
{
argc = argc;
argv = argv;
tpopen();
return 0;
}
//服务端结束服务
void tpsvrdone()
{
tpclose();
}
#if defined(__cplusplus)
extern "C" {
#endif
extern int _tmrunserver _((int));
extern void TUDEMO _((TPSVCINFO *));
#if defined(__cplusplus)
}
#endif
static struct tmdsptchtbl_t _tmdsptchtbl[] = {
{ (char*)"TUDEMO", (char*)"TUDEMO", (void (*) _((TPSVCINFO *))) TUDEMO, 0, 0 },
{ NULL, NULL, NULL, 0, 0 }
};
#ifndef _TMDLLIMPORT
#define _TMDLLIMPORT
#endif
#if defined(__cplusplus)
extern "C" {
#endif
_TMDLLIMPORT extern struct xa_switch_t xaosw;
#if defined(__cplusplus)
}
#endif
typedef void (*tmp_void_cast)();
typedef void (*tmp_voidvoid_cast)(void);
typedef int (*tmp_intchar_cast)(int, char **);
typedef int (*tmp_int_cast)(int);
struct tmsvrargs_t tmsvrargs = {
NULL,
&_tmdsptchtbl[0],
0,
(tmp_intchar_cast)tpsvrinit,
(tmp_voidvoid_cast)tpsvrdone,
(tmp_int_cast)_tmrunserver, /* PRIVATE */
NULL, /* RESERVED */
NULL, /* RESERVED */
NULL, /* RESERVED */
NULL, /* RESERVED */
(tmp_intchar_cast)tpsvrthrinit,
(tmp_voidvoid_cast)tpsvrthrdone
};
struct tmsvrargs_t *
#ifdef _TMPROTOTYPES
_tmgetsvrargs(void)
#else
_tmgetsvrargs()
#endif
{
tmsvrargs.reserved1 = NULL;
tmsvrargs.reserved2 = NULL;
tmsvrargs.xa_switch = &xaosw;
return(&tmsvrargs);
}
int
#ifdef _TMPROTOTYPES
main(int argc, char **argv)
#else
main(argc,argv)
int argc;
char **argv;
#endif
{
#ifdef TMMAINEXIT
#include "mainexit.h"
#endif
return( _tmstartserver( argc, argv, _tmgetsvrargs()));
}
#ifdef __cplusplus
extern "C"
#endif
void TUDEMO(TPSVCINFO *rqst)
{
long nRet;
{
TCDemo Demo;
Demo.Do(rqst);
nRet = Demo.GetRetCode();
}
tpreturn(TPSUCCESS, nRet, NULL, 0, 0);
}