Я новичок в Visual Foxpro. Я хочу создать файл динамической c библиотеки ссылок (dll), используя Visual Foxpro для вызова функции Visual Foxpro в Node или Java для создания rest API.
Я пробовал это с Node и Java . У меня возникла проблема, когда я использовал файл DLL Foxpro. Итак, я создал C# dll и получил ту же проблему. Итак, я прочитал документ, в котором говорится об использовании тега > [DLLEXPORT] над функцией, которую я хочу вызвать на другом родном языке.
Я создал 32-разрядную и 64-разрядную версию dll для использования с кодом моего родного языка. Это было успешно. Мой вопрос в том, что я хочу создать как 32-разрядные, так и 64-разрядные файлы dll с помощью Visual Foxpro для использования с кодом 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]
, getData нельзя было бы вызвать в моем коде Node или java.
Это мой Node.js код:
const ffi = require("@saleae/ffi");
const libm = ffi.Library("./FDLL", {
getData: ["string", []],
getData1: ["string", ["string"]]
});
Работает нормально, но моя dll Foxpro не работает.
Это мой код Visual Foxpro:
скриншот кода VFP
Это код JavaScript для доступа к моей функции Foxpro GetDrugsJSON()
var libm1 = ffi.Library("./cw/comdemo", {
GetDrugsJSON: ["String", []],
});
console.log(libm1.GetDrugsJSON())
Но я не могу вызвать функцию GetDrugsJSON()
с кодом JavaScript.
Как исправить эту проблему?