1. 编制DLL文件 ,保存为Temp.prg

Define Class vfptools As Session OlePublic
    Procedure Add As Integer
    Lparameters p1,p2
    Return p1 + p2
    Endproc
Enddefine

2. 编制生成Project文件MyFox.pjt

Build Project myfox From temp.prg

3. 生成 DLL文件 MyFox.dll

Build Dll myfox From myfox

4.调用本DLL

Local loCom As 'MYFOX.VFPTOOLS'
loCom = Createobject('MYFOX.VFPTOOLS')
? LOCOM.Add (2,3)

5.结果

5

这样就可以了,而且在VFP编写代码的时候,当用到这个DLL还会智能提示DLL内部的函数

* ==============================================================================================================================

有两种 DLL 文件,一种是用 Declare 声明然后调用,这种文件 Copy 了就能用,但不能用智能提示,只能用专门的工具查看里面有什么东西,这种 Dll 一般是用 C 编写的。

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

Local loCom 
loCom = Createobject('Mydll.Mydata')
*!* 示例:
* 首先建一个工程,如MyDll,
* 然后建一个主程序,如MyDllMain,
* 然后在这个主程序里写如下代码:
**********取得表中记录总数**********
Define Class MyData As Session OlePublic && 如果是VFP6-SP5以下,把SessionN改为Custom
    Procedure GetDataCount
    Lparameters tcTable
    Select 0
    Select Count(*) From (tcTable) Into Array curData
    Use In (tcTable)
    Return Alltrim(Str(curdata))
    Endproc
Enddefine

编译时选择连编成DLL。

在VFP中调用这个DLL:

Local loCom 
loCom = Createobject('Mydll.Mydata')
? loCom.GetDataCount('temp1') && temp1为表名
Release loCom
loCom = Null
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文件中,然后再由其他开发工具进行读取即可。

最新文章

  1. Java 引用
  2. recording just for inquiry in the future
  3. 在uwp仿制WPF的Window
  4. Linux shell脚本编程基础之练习篇
  5. IE6/IE7中display:inline-block解决办法
  6. linux定时器
  7. 堆和栈的区别【zz】
  8. 用Less循环生成样式
  9. java多线程检测可用IP
  10. 排序(4)---------希尔(shell)排序(C语言实现)
  11. SpringMVC集成shrio框架
  12. gulp环境搭建
  13. Unique-paths (动态规划)
  14. Python学习(四十一)—— Djago进阶
  15. 【Boost】boost::tokenizer详解
  16. 洛谷P3628 [APIO2010]特别行动队(动态规划,斜率优化,单调队列)
  17. Processing 与 C 相同和不同的地方
  18. HDUOJ----Coin Change
  19. SpringBoot使用AutoConfiguration自定义Starter
  20. How to revert your file&folder by "FOUND.000"

热门文章

  1. Spring bean装配流程和三级缓存
  2. react.js 实现音乐播放、下一曲、以及删除歌曲(仅播放列表)
  3. Vue学习之--------Vue生命周期beforeCreate、created、beforeMount、mounted、beforeDestroy 。。。(图解详细过程)(2022/7/17)
  4. golang开发一个简单的grpc
  5. go channel原理及使用场景
  6. Python3.11正式版,它来了!
  7. Codeforces Global Round 23 D.Paths on the Tree(记忆化搜索)
  8. csp2022第一轮游记
  9. 阿里云 ACK 接入观测云
  10. Kubernetes集群YAML文件详解