【问题标题】:Need to build a DLL using Visual Foxpro so that another program can manage data on a "DBF" file需要使用 Visual Foxpro 构建 DLL,以便另一个程序可以管理“DBF”文件上的数据
【发布时间】:2020-12-12 11:16:25
【问题描述】:

我们有一个用 Visual Foxpro (VFP6) 构建的系统,但它仍在运行。

另一方面,我们有另一个系统(在 VB6 中)处理日常业务,我们希望这个系统能够通过 DLL 调用直接与 VFP6 程序交互。

经过一番研究,我们发现可以从 VFP6 构建一个 DLL 文件,然后我们的 VB6 系统可以使用 DLL 调用与可视化 foxpro DLL 交互(然后更新一些“DBF”文件中的数据)。

我们知道从我们的 VB6 系统调用 DLL 的部分如下(数据插入操作):

set newobject=CreateObject(DLLName, ClassName)
action1=newobject.insert(Data1, Data2, Data3)

但是我们如何从 VFP6 构建一个 DLL 呢?有经验的朋友请分享一下。

【问题讨论】:

  • 除了使用 DLL 之外,您还可以使用 ADO 或 ODBC 直接插入\更新\删除\选择(VFP6 表支持 ODBC)。 ADO 和 VFPOLEDB 会是更好的选择,也可以让你使用 VFP9 兼容的 SQL。
  • @johnwong 我建议您在上面的评论中遵循 Cetin 的建议。当然,直接从 VB6(使用 ADO 库)读取 DBF 肯定比在 VFP 中构建 DLL 更容易。

标签: vb6 visual-foxpro


【解决方案1】:

您可以按照以下步骤通过 VFP6 构建 DLL

在项目管理器,代码>程序中,创建一个程序并将代码如下:

DEFINE CLASS newsdata AS CUSTOM OLEPUBLIC

PROCEDURE Insert
lparameters data1, data2, data3

workfolder=fullpath(curdir())
set defa to (workfolder)

use [dbfname]
[add all other VFP codes here, processing data1, data2, data3....if needed]
ENDPROC

ENDDEFINE

(请把额外的方法放到不同的PROCEDURE中,以便你的调用程序可以使用它们)

之后,请使用“Build”并选择“Build COM DLL”

然后请将DLL放在你的VB6文件夹中,你可以通过如下代码调用这个DLL

Set object1 = CreateObject([DLLname].[Classname])
Result = object1.Insert(Data1, Data2, Data3....)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多