有没有用RUST给VFP开发FLL的朋友交流?
本人最近使用RUST成功为VFP开发FLL,并摆脱了对微软编译器的依赖。欢迎交流。# vfprustfll
一个最小的 Visual FoxPro 9 32 位 Rust FLL。它只注册一个 VFP 函数:`FADD(a, b)`,返回两个整数之和。例如 `? FADD(5, 6)` 显示 `11`。
## 构建
安装 Rust 1.77.2、`i686-pc-windows-gnu` 目标和 32 位 MinGW 工具链。本机的 `build.bat` 使用 `E:\install\dev\mingw32\bin`。在项目目录执行:
```bat
build.bat
```
输出文件为 `target\i686-pc-windows-gnu\release\vfprustfll.dll`。脚本检查 PE i386 格式和 `FoxTable`、`_FoxTable`、`@DispatchAPI@4` 导出,不向其他目录部署。
`libwinapims.a` 是 VFP 扩展 API 的 GNU 导入库,`pro_ext.h` 是随项目提供的 VFP SDK 接口头文件,一并保留。`@DispatchAPI@4` 必须导出,否则 VFP9 会将 DLL 判为无效 FLL。
## 在 VFP9 中使用
```foxpro
SET LIBRARY TO (FULLPATH("target\i686-pc-windows-gnu\release\vfprustfll.dll")) ADDITIVE
? FADD(5, 6) && 11
```
也可运行项目中的 `demo.prg`。本 DLL 是 FLL,应通过 `SET LIBRARY TO` 加载,不使用 `DECLARE DLL`。`FADD` 接受两个 32 位范围内的整数,且和不能溢出;无效参数会给出 VFP 错误。
已在 VFP9 中实测加载并调用 `FADD(5,6)=11`。
[此贴子已经被作者于2026-9-18 03:01编辑过]











