我想用nim代码创建一个dll.
但我没有注册其他一些出口而不是“NimMainInner”.
即使我尝试这个简单的例子它不工作:
但我没有注册其他一些出口而不是“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]
检查dll我使用dllexp.exe.
我也尝试用python ctypes加载dll,但我的导出都没有显示或可调用.不过,我可以使用hexeditor在结果dll中看到proc名称.
我错过了什么?
dynlib pragma失踪了.所以我把定义改为:
原文链接:https://www.f2er.com/windows/441500.htmlproc 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