| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1929 人关注过本帖
标题:请教:PowerBuilder中函数定义如果转成vfp的定义
只看楼主 加入收藏
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:283
专家分:38
注 册:2010-12-23
结帖率:58.97%
收藏
已结贴  问题点数:18 回复次数:6 
请教:PowerBuilder中函数定义如果转成vfp的定义
请教:PowerBuilder中函数定义如果转成vfp的定义
嵌入模块主文件为BargaingApplyV3_01020.DLL,其他为配套的支持文件。嵌入模块根据配置文件内容获取运行参数,接收用户交易并将处理结果返回给用户。
BargaingApplyV3_xxxx提供外部调用的函数主要包括交易申请函数f_UserBargaingApply、交易初始化函数f_UserBargaingInit和交易关闭函数f_UserBargaingClose
PowerBuilder中函数定义:FUNCTION integer f_UserBargaingInit(string lpData1, ref string lpMessage,string lpData2)  library "BargaingApplyV3_01020 "
PowerBuilder中函数定义:FUNCTION integer f_UserBargaingClose(string lpData1, ref string lpMessage,string lpData2)  library "BargaingApplyV3_01020"
PowerBuilder中函数定义:FUNCTION integer f_UserBargaingApply(integer nTradeTypeID,double TradeID,string lpData1, ref string lpMessage,string lpData2)  library " BargaingApplyV3_xxxxx"

我改成这样,它提示无法加载32位dll
*!*    set library to BargaingApplyV3_01020.dll
DECLARE Integer f_UserBargaingInit IN BargaingApplyV3_01020.dll string lpData1,string @lpMessage,string lpData2
LOCAL lma1
lma1=SPACE(1000)
f_UserBargaingInit('',@lma1,'b')
图片附件: 游客没有浏览图片的权限,请 登录注册


附资料:
函数原型:int f_UserBargaingInit(const char * Data1,char * retMsg,char* Data2)
功能:系统应用前初始化数据准备
参数说明:
传入参数:Data1-------不需要传递数据
                 Data2-------传递医疗机构编号
             retMsg ---- 返回的信息,数据包格式参考3.3
返回值:  =0-----------成功,没有任何警告,返回信息在retMsg
             >0-----------成功,但是有警告信息,警告信息在retMsg
             <0-----------失败,错误信息在retMsg中
PowerBuilder中函数定义:FUNCTION integer f_UserBargaingInit(string lpData1, ref string lpMessage,string lpData2)  library "BargaingApplyV3_xxxxx "
函数原形:int f_UserBargaingClose (const char * Data,char * retMsg,char* Data2)
功能:退出系统前释放资源
参数说明:同于f_UserBargaingInit交易。
PowerBuilder中函数定义:FUNCTION integer f_UserBargaingClose(string lpData1, ref string lpMessage,string lpData2)  library "BargaingApplyV3_01020"
调用实例(其中方框内为交易返回参数,用户传递进入时为”$$3000个空格$$”)
f_UserBargaingInit(”$$$$”,”$$0~~$$”,””)
f_UserBargaingClose(”$$$$”,”$$0~~$$”,””)

[此贴子已经被作者于2020-1-3 16:53编辑过]

搜索更多相关主题的帖子: 定义 函数 string integer char 
2020-01-03 16:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10537
专家分:42927
注 册:2014-5-20
收藏
得分:18 
给个DLL文件看看
2020-01-03 16:56
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:283
专家分:38
注 册:2010-12-23
收藏
得分:0 
回复 2楼 吹水佬
谢谢版主回复,附DLL
BargaingApplyV3_01020.rar (204.53 KB)
2020-01-03 16:58
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10537
专家分:42927
注 册:2014-5-20
收藏
得分:0 
试了一下
用LoadLibrary载入BargaingApplyV3_01020.dll时会抛出“找不到指定的模块”的错误提示。
用LoadLibraryEx带DONT_RESOLVE_DLL_REFERENCES参数载入BargaingApplyV3_01020.dll时不会出现错误。
问题:
1、BargaingApplyV3_01020.dll内部初始化模块可能还有调用其他DLL,而这个DLL找不到。
2、BargaingApplyV3_01020.dll内部初始化模块可能做了什么限制,导致DLL载入时不成功。


2020-01-03 21:45
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:283
专家分:38
注 册:2010-12-23
收藏
得分:0 
回复 4楼 吹水佬
谢谢 版主,正好有事没及时回复,我把所有DLL发过来

sample.rar (4.11 MB)

接口文档.rar (20.15 KB)
2020-01-04 19:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10537
专家分:42927
注 册:2014-5-20
收藏
得分:0 
假设将提供的文件sample放到C:\TEMP\BargaingApply\sample
执行下面的VFP代码没出现错误

SET DEFAULT TO C:\TEMP\BargaingApply\sample\
DECLARE LONG f_UserBargaingInit IN BargaingApplyV3_01020 STRING@, STRING@, STRING@
DECLARE LONG f_UserBargaingClose IN BargaingApplyV3_01020 STRING@, STRING@, STRING@
DECLARE LONG f_UserBargaingApply IN BargaingApplyV3_01020 LONG, LONG, STRING@, STRING@, STRING@
LOCAL cRetMsg
cRetMsg = "$$"+SPACE(3000)+"$$"  && 要求有足够空间
? f_UserBargaingInit("$$$$", @cRetMsg, "")
? f_UserBargaingClose("$$$$", @cRetMsg, "")
2020-01-04 21:11
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:283
专家分:38
注 册:2010-12-23
收藏
得分:0 
回复 6楼 吹水佬
十分谢谢版主的帮助,没有报错了!十分感谢!
2020-01-06 09:38
快速回复:请教:PowerBuilder中函数定义如果转成vfp的定义
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018610 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved