如何正确创建一个nim / nimrod windows dll

前端之家收集整理的这篇文章主要介绍了如何正确创建一个nim / nimrod windows dll前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用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]

检查dll我使用dllexp.exe.
我也尝试用python ctypes加载dll,但我的导出都没有显示或可调用.不过,我可以使用hexeditor在结果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
原文链接:https://www.f2er.com/windows/441500.html

猜你在找的Windows相关文章