Directories/Conditionals中设置
Include Path : $(BCB)\Tuxedo\include
Library Path : $(BCB)\Tuxedo\lib
好了,环境设置好了。在你的工程中include :
#include <atmi.h>
#include <fml32.h>
#include <tmenv.h>
哦,他们三个文件实在太重要了,不包含进来你会后悔的:)
3、建立一个tuxedo子集函数结构。为什么这样做呢,直接使用tuxedo函数
不好吗? 这没什么的,依个人编程环境而定。我习惯于在结构名下
使用这些 外来开发包中的函数,因为你对他们不是很熟,有时会遗忘
其名称,将其放在结构中,利用BCB自动提示功能,你就可以很容易
找到(想起)需要的函数了。我定义的结构如下:
typedef
struct _FunTuxedo
{
int
(_TMDLLENTRY *
tpcall)(char _TM_FAR *,
char _TM_FAR *,
long ,
char _TM_FAR * _TM_FAR *,
long _TM_FAR *,
long );
int
(_TMDLLENTRY *
tpinit)(TPINIT _TM_FAR *);
int
(_TMDLLENTRY *
tpterm)(void);
void
(_TMDLLENTRY *
tpfree)(char _TM_FAR *);
char *
(_TMDLLENTRY *
tpalloc)(char _TM_FAR *,
char _TM_FAR *,
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);
FLDOCC32
(_TMDLLENTRY *
Foccur32)( FBFR32 _TM_FAR *,
FLDID32);
HMODULE hLibfml32; // libfml32.dll 动态库句柄
HMODULE hWtuxws32; // wtuxws32.dll 动态库句柄
}FUNTUXEDO,*PFUNTUXEDO;
这里,我将两个动态库句柄加入到了结构中,是因为我打算动态使用
tuxedo中间件。方便我释放他们。,下一节介绍装载/释放他们
4 装载、释放中间件(基于FUNTUXEDO结构)
哈,这很容易,主要用到LoadLibrary,FreeLibrary,GetProcAddress
三个函数。装载代码如下:
PFUNTUXEDO pFun;
//Loading Fchg32, Fget32 by LIBFML32.DLL
pFun->hLibfml32 = LoadLibrary("libfml32.dll");
if (pFun->hLibfml32 == NULL)
{
return -1;
}
(FARPROC &)pFun->Fchg32
=(FARPROC)GetProcAddress(pFun->hLibfml32,"Fchg32");
(FARPROC &)pFun->Fget32
=(FARPROC)GetProcAddress(pFun->hLibfml32,"Fget32");
(FARPROC &)pFun->Foccur32
=(FARPROC)GetProcAddress(pFun->hLibfml32,"Foccur32");
if (pFun->Fchg32 == NULL (北联网教程,专业提供视频软件下载)
……