问题。使用外部库时,Rebol2中的pointer!
与Red / System中的相同吗?
如果c声明是:
void f (int* i);
我如何定义routine!
?
f: make routine! [
"Does Something"
int [pointer! [integer!]]
return: [char!]
] lib "f"
我看到http://rebol.com/docs/library.html#section-25
然而,只是有点困惑。定义“传递指针的外部库函数,通常是期望的 指针是char或void数据类型。目前,REBOL例程 不支持void数据类型。在大多数情况下,你可以安全地通过 char而不是void。对于返回值,请使用long而不是void。“
f
的例程的正确方法是什么?
答案 0 :(得分:2)
作为链接状态
f: make routine! [
"Does Something"
pInt [char*]
return: [long]
] lib "f"
几年前为我工作