Call a foreign-language function: Difference between revisions
Content added Content deleted
(Added JavaScript solution using Node.js and node-api) |
(Added Hare) |
||
Line 868: | Line 868: | ||
hello C |
hello C |
||
</pre> |
</pre> |
||
=={{header|Hare}}== |
|||
<lang hare>// hare run -lc ffi.ha |
|||
use fmt; |
|||
use strings; |
|||
@symbol("strdup") fn cstrdup(_: *const char) *char; |
|||
@symbol("free") fn cfree(_: nullable *void) void; |
|||
export fn main() void = { |
|||
let s = strings::to_c("Hello, World!"); |
|||
defer free(s); |
|||
let dup = cstrdup(s); |
|||
fmt::printfln("{}", strings::fromc(dup))!; |
|||
cfree(dup); |
|||
};</lang> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |