Node 或 Java 中的 Microsoft Visual Foxpro DLL 调用
Microsoft Visual Foxpro DLL call in Node or Java
我是 Visual Foxpro 的新手。我想使用 Visual Foxpro 构建动态 link 库 (dll) 文件以调用 Node 中的 Visual Foxpro 函数或 Java 构建 rest API.
我用 Node 和 Java 试过了。我在使用 Foxpro dll 文件时遇到了问题。所以我创建了一个 C# dll,并遇到了同样的问题。然后我读了一份文件说在我想用另一种母语调用的函数上方使用 > [DLLEXPORT] 标签。
我构建了一个 32 位和 64 位 dll 以与我的母语代码一起使用。它是成功的。我的问题是我想使用 Visual Foxpro 构建 32 位和 64 位 dll 文件以与 Node.js 代码一起使用。
这是我的 C# 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using net.r_eg.DllExport;
namespace FDLL
{
public class First
{
[DllExport]
public static String getData()
{
Console.Write("Call Function Successfully!");
return "HI Welcome";
}
}
[DllExport]
public static String getData1(String a)
{
Console.Write("Call Function Successfully!");
return "HI Welcome"+ a;
}
}
如果我没有使用 [DllExport]
标签,则无法在我的节点或 java 代码中调用 getData。
这是我的 Node.js 代码:
const ffi = require("@saleae/ffi");
const libm = ffi.Library("./FDLL", {
getData: ["string", []],
getData1: ["string", ["string"]]
});
它工作正常,但我的 Foxpro dll 不工作。
这是我的 Visual Foxpro 代码:
这是Java用于访问我的 Foxpro GetDrugsJSON()
功能的脚本代码
var libm1 = ffi.Library("./cw/comdemo", {
GetDrugsJSON: ["String", []],
});
console.log(libm1.GetDrugsJSON())
但我无法使用 Java 脚本代码调用 GetDrugsJSON()
函数。
我该如何解决这个问题?
长话短说,您不能使用 VFP 构建 32 位和 64 位 DLL。
DLL 也是一个广义术语(虽然它是动态 Link 库的缩写,但有不同的 DLL)。
你说的是“在 Node 或 Java 中构建 rest API”。要创建 REST API,您不想使用 VFP。使用其他东西,例如 C#、Go、...
对于其他语言也是如此,如果您通过 VFPOLEDB 访问 VFP 数据,则它需要为 32 位。
我是 Visual Foxpro 的新手。我想使用 Visual Foxpro 构建动态 link 库 (dll) 文件以调用 Node 中的 Visual Foxpro 函数或 Java 构建 rest API.
我用 Node 和 Java 试过了。我在使用 Foxpro dll 文件时遇到了问题。所以我创建了一个 C# dll,并遇到了同样的问题。然后我读了一份文件说在我想用另一种母语调用的函数上方使用 > [DLLEXPORT] 标签。
我构建了一个 32 位和 64 位 dll 以与我的母语代码一起使用。它是成功的。我的问题是我想使用 Visual Foxpro 构建 32 位和 64 位 dll 文件以与 Node.js 代码一起使用。
这是我的 C# 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using net.r_eg.DllExport;
namespace FDLL
{
public class First
{
[DllExport]
public static String getData()
{
Console.Write("Call Function Successfully!");
return "HI Welcome";
}
}
[DllExport]
public static String getData1(String a)
{
Console.Write("Call Function Successfully!");
return "HI Welcome"+ a;
}
}
如果我没有使用 [DllExport]
标签,则无法在我的节点或 java 代码中调用 getData。
这是我的 Node.js 代码:
const ffi = require("@saleae/ffi");
const libm = ffi.Library("./FDLL", {
getData: ["string", []],
getData1: ["string", ["string"]]
});
它工作正常,但我的 Foxpro dll 不工作。
这是我的 Visual Foxpro 代码:
这是Java用于访问我的 Foxpro GetDrugsJSON()
功能的脚本代码
var libm1 = ffi.Library("./cw/comdemo", {
GetDrugsJSON: ["String", []],
});
console.log(libm1.GetDrugsJSON())
但我无法使用 Java 脚本代码调用 GetDrugsJSON()
函数。
我该如何解决这个问题?
长话短说,您不能使用 VFP 构建 32 位和 64 位 DLL。
DLL 也是一个广义术语(虽然它是动态 Link 库的缩写,但有不同的 DLL)。
你说的是“在 Node 或 Java 中构建 rest API”。要创建 REST API,您不想使用 VFP。使用其他东西,例如 C#、Go、...
对于其他语言也是如此,如果您通过 VFPOLEDB 访问 VFP 数据,则它需要为 32 位。