找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6669|回复: 1

[开源] VFP编写DLL

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2015-10-27 21:03:01 | 显示全部楼层 |阅读模式
有两种 DLL 文件,一种是用 Declare 声明然后调用,这种文件 Copy 了就能用,但不能用智能提示,只能用专门的工具查看里面有什么东西,这种 Dll 一般是用 C 编写的。

另外一种是 COM 方式的 Dll ,用 Createobjectex() 或 Createobject() 调用,对象名的两部分组成,也不能直接看出,需要开发者提供,下面就可以用智能提示了。文件要注册(regsvr32),这种 Dll 许多语言都可以开发,也都可以调用,VFP 开发的 Dll 就属于这种。
能调用 COM 组件的开发工具都可以使用这种 Dll

  1. Local loCom
  2. loCom = Createobject('Mydll.Mydata')

  3. *!* 示例:
  4. 首先建一个工程,如MyDll,
  5. 然后建一个主程序,如MyDllMain,
  6. 然后在这个主程序里写如下代码:
  7. **********取得表中记录总数**********
  8. Define Class MyData As Session OlePublic&&如果是VFP6-SP5以下,把SessionN改为Custom
  9.     Procedure GetDataCount
  10.         Lparameters tcTable
  11.         Select 0
  12.         Select Count(*) From (tcTable) Into Array curData
  13.         Use In (tcTable)
  14.         Return Alltrim(Str(curdata))
  15.     Endproc
  16. Enddefine
  17. ************************************
  18. 编译时选择连编成DLL。

  19. 在VFP中调用这个DLL:
  20. Local loCom
  21. loCom = Createobject('Mydll.Mydata')
  22. ?loCom.GetDataCount('temp1') &&temp1为表名
  23. Release loCom
  24. loCom = Null
  25. Return

复制代码

注:
1.session只能在VFP6.0+SP5开始才能使用,建议使用7.0或更高版本。若非要用6.0,则必须打补丁,或改用CUSTOM类。
2.编译成的DLL,与EXE一样,要用运行库,还必须同时发布 VFP[x]T.Dll文件([x]可为6、7、8或9)。
3.如果感觉用DLL不方便,那么可以编译成用vfp的exe文件,直接在其他开发工具中调用执行,只要定义数据接口就行。如:其他开发工具调用vfp的exe程序,vfp程序把结果输出到一个txt文件中,然后再由其他开发工具进行读取即可。

文章来源:http://blog.csdn.net/apple_8180/article/details/2318555
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1

主题

15

回帖

0

精华

初来乍到

积分
16
发表于 2021-1-26 14:24:54 | 显示全部楼层
vfp好像彻底凉了吧,现在来看过得真快啊
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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