【发布时间】:2013-07-20 04:05:20
【问题描述】:
过去,使用 REBOL/Command 可以正常工作。现在,我正在尝试将我编译的load/library .dll 和load 的/library 细化不再存在。 Rebol 3 中的等价物是什么?我必须制作'extension 和import 吗?
【问题讨论】:
过去,使用 REBOL/Command 可以正常工作。现在,我正在尝试将我编译的load/library .dll 和load 的/library 细化不再存在。 Rebol 3 中的等价物是什么?我必须制作'extension 和import 吗?
【问题讨论】:
是的,Rebol 3 目前不包含类似 Rebol 2 的 DLL 接口,该接口受到限制并且没有提供许多有用的选项来包装库,例如回调也非常有限。 Rebol 3 通过引入扩展机制解决了这种情况,这涉及到一点 C 代码。
还有一些倡议以 Rebol 3 扩展的形式引入改进的类似 Rebol 2 的 DLL 接口,但该项目尚未成功,尽管在 ReCode 会议之后,有人声称它会来。
您还可以使用 Red/System:它是一种类似 Rebol 的语言,但非常接近 C 级别,因此很容易包装。 Kaj De Vos 创建了一些示例,展示了如何write an Rebol 3 extension as Red/System DLL。
【讨论】:
自从回答了这个问题,Rebol3 的某些版本,例如。 Atronix,把外部函数库编译进去,这样你就可以了
make library! %some.dll
有关 Windows 的示例,请参阅 https://github.com/zsx/r3/blob/atronix/make/tests/ms-drives.r,有关全面的 linux 示例,请参阅 https://github.com/zsx/c2r3/blob/master/demos/gtk-demos/gtk-demo.reb。
【讨论】: