VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1033|回复: 6

求助同时精通VFP、DELPHI的高手

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-28 08:40:02 | 显示全部楼层 |阅读模式
关于用VFP调用DELPHI开发出来的DLL的问题;

DELPHI中调用如下:
  function GetICCardInfo(ICNo: PChar; SickerCode: Integer;      SickerName: PChar):Integer; stdcall;
  far;external 'MyDelphi.dll' name 'GetICCardInfo';

请问在VFP中该怎样调用?谢谢了。
回复

使用道具 举报

0

主题

32

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-3-1 13:45:01 | 显示全部楼层
有两种DLL文件,一种是用Declare说明然后调用,这种文件copy了就能用,但不能用智能提示,只能用专门的工具查看里面有什么东西,这种Dll一般是用C编写的。
另外一种是COM方式的Dll,用Createobject(对象名)方式调用,
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-3-5 07:15:01 | 显示全部楼层
谢谢楼上的,能不能说得更详细一点,目前是我们DELPHI开发出来的DLL,在做和别的开发商做接口时,他不会调用我们的DLL,我对VFP又不熟,楼上的能不能就上面的例子给出一个详尽的答案?谢谢了。
回复

使用道具 举报

0

主题

18

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-3-14 10:30:01 | 显示全部楼层
function GetICCardInfo(ICNo: PChar; SickerCode: Integer;      SickerName: PChar):Integer; stdcall;

// 根据你的Delphi的定义 ,在VFP中作如下调用.

Declare Integer GetICCardInfo In MyDelphi.dll String @,integer,String @

// PChar 类型既指针类型,VFP中通过@传递地址指针.上述Dll传入三个参数.返回
// 整型.Vfp中调用Dll 与调用Winapi没什么两样.



回复

使用道具 举报

0

主题

18

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-3-20 19:30:01 | 显示全部楼层
上述声明完成后,就可以如下调用:

  local lcICNo As String ,lcSickerName As String
  Local lnSickerCode As Integer ,lnResult As Integer

  Store Space(255) To lcICNo,lcSickerName           &&& 不能少

  lnSickerCode = 125452
  lnResult = GetICCardInfo(@lcICNo,lnSickerCode,@lcSickerName)

  If lnResult>0
     && OK
  Else
     && Error
  EndIf

  ///////////////////////////////////////////////////////////////////////
  在Delphi中,该Function 接受参数后,并填充然后返回给调用者
  
回复

使用道具 举报

0

主题

18

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-3-21 00:30:01 | 显示全部楼层
补充:

该Dll中的Function  必须返回整数,上述返回数值的判断根据Delphi中的返回值决定.
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-4-3 16:00:01 | 显示全部楼层
谢谢各位的热心帮助,由于我这里没有VFP的环境,没有办法进行调试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表