gpt4 book ai didi

windows - 如何正确创建 nim/nimrod windows dll

转载 作者:可可西里 更新时间:2023-11-01 13:33:55 24 4
gpt4 key购买 nike

我想从 nim 代码创建一个 dll。但是除了“NimMainInner”之外,我没有注册其他一些导出。即使我尝试这个简单的例子它也不起作用:

proc Hellow(): cint {.exportc.} =
echo("hello")
return 1

我用 nim c --app:lib libh4x.nim 编译了它和 nim c -d:release --app:lib --no_main libh4x.nim

我使用 Nim 编译器版本 0.11.2 (2015-05-04) [Windows: i386]

我使用 dllexp.exe 检查 dll。我也尝试用 python ctypes 加载 dll,但我的导出都没有显示或可调用。不过,我可以使用十六进制编辑器在生成的 dll 中看到 proc 名称。

我在这里错过了什么?

最佳答案

dynlib pragma 不见了。所以我将定义更改为:

proc Hellow(): cint {.exportc,dynlib.} =
echo("hello")
result = 1

现在可以了。

注意:如果您将此与 pythons ctypes 和函数参数一起使用,请确保使用 ctypes.cdll.LoadLibrary 而不是 ctypes.windll.LoadLibrary: Python ctypes argument errors

并像这样声明函数:

proc myinit(procid : int) {.cdecl,exportc,dynlib.} =
discard

关于windows - 如何正确创建 nim/nimrod windows dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32839321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com