资源描述:
《tuxedo与在pb的调用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、http://hi.baidu.com/jsshm/blog/item/75ea4c1309954bd7f7039ea5.htmlBCB客户端tuxedo开发实例关键字 tuxedo,tpinit,tpcall,tpterm,tpfree,tpalloc,Fget32,Fchg32,FLDOCC32tuxedo的函数很多,所有应用都使用其中子集。这些函数子集包含在开发包中一定的动态库中。下面以tpinit,tpcall,tpterm,tpfree,tpalloc,Fget32,Fchg32,FLDOCC32几个函数为例介绍一下在该子
2、集下的编程方式。(不是很准哟)1、首先找到这些函数所在的动态库。经过解析发现以上函数包含 在"wtuxws32.dll","libfml32.dll"两个动态库中。多好,有了这两个动 态库,应用程序发行时,带上他们就可以了。再也不会出现操作系统弹出 的动态库定位错误了。且慢,后经研究发现,光有这两个dll不行,他们 的运行还需如下6个dll:libbuft.dll,libengine.dll,libfml.dll, libgpnet.dll,libtux.dll,libwsc.dll。哈哈。总算解析完了。
3、 好,把这些文件copy出来到自己的工程目录下。多棒。赶紧进入下一步。2、配置编译环境。这很重要。为使大家编程方便,我们做些小动作。在 BCB的安装目录下(即$(BCB)标识的目录)建立tuxedo目录,将 tuxedo开发包中的bin,include,lib几个目录拷贝到该目录下。 然后,在Option
4、Directories/Conditionals中设置 IncludePath: $(BCB)Tuxedoinclude LibraryPath: $(BCB)Tuxedolib
5、 好了,环境设置好了。在你的工程中include: #include #include #include http://hi.baidu.com/jsshm/blog/item/75ea4c1309954bd7f7039ea5.html 哦,他们三个文件实在太重要了,不包含进来你会后悔的:) 3、建立一个tuxedo子集函数结构。为什么这样做呢,直接使用tuxedo函数 不好吗?这没什么的,依个人编程环境而定。我习惯于在结构名下 使用这些外来开发包
6、中的函数,因为你对他们不是很熟,有时会遗忘 其名称,将其放在结构中,利用BCB自动提示功能,你就可以很容易 找到(想起)需要的函数了。我定义的结构如下: typedefstruct_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
7、*tpterm)(void);void(_TMDLLENTRY*tpfree)(char_TM_FAR*);char*(_TMDLLENTRY*tpalloc)(char_TM_FAR*, char_TM_FAR*, long);int(_TMDLLENTRYhttp://hi.baidu.com/jsshm/blog/item/75ea4c1309954bd7f7039ea5.html*Fget32)(FBFR32_TM_FAR*, FLDID32, FLDOCC32, char_TM_FAR*,
8、 FLDLEN32_TM_FAR*);int(_TMDLLENTRY*Fchg32)(FBFR32_TM_FAR*, FLDID32, FLDOCC32, char_TM_FAR*, FLDLEN32);FLDOCC32(_TMDLLENTRY*Foccur32)(FBFR32_TM_FAR*, FLDID32);HMODULEhLibfml32;//libfml32.dll动态库句柄HMODULEhWtuxws32;//wtuxws32.dll动态库句柄}FUNTUXEDO,*PFUNTUXEDO;
9、 这里,我将两个动态库句柄加入到了结构中,是因为我打算动态使用 tuxedo中间件。方便我释放他们。,下一节介绍装载/释放他们 4装载、释放中间件(基于FUNTUXEDO结构) 哈,这很容易,主要用到Loa