【问题标题】:How to access methods from C# dll using ctypes?如何使用 ctypes 从 C# dll 访问方法?
【发布时间】:2018-01-09 00:26:31
【问题描述】:

我在这里有点不知所措,以前从未使用过 dll,所以希望我的问题是有道理的。

我正在尝试使用其中包含许多不同类的 C# dll。我在这里阅读了其他显示示例代码的问题,例如:

import ctypes
lib = ctypes.cdll.LoadLibary('pathToDLL')
lib.foo()

我明白了。如果有意义的话,我无法弄清楚如何使用 dll 中的类中的方法。因此,如果 dll 包含一个名为“Foo”的类和一个方法“bar”,我如何使用 ctypes 调用 bar? ctypes 也是尝试访问此 dll 的最佳方式还是我应该使用其他东西?

【问题讨论】:

  • 我相信,既然您想使用 C# (.NET) dll,您将能够像使用常规 dll 一样使用 ctypes。 pythonnet 可以在这里帮助你。

标签: c# python .net dll python.net


【解决方案1】:

您应该为此使用 pythonnet 模块。 这是它在 Windows 上的工作方式。

  1. 安装:pip install pythonnet
  2. 用法:

例如

# dll name  = mydll.dll
# namespace = mynamespace
# class     = Foo
# method    = bar

import clr
 # provide name without .dll and make sure either to 
 # copy the dll in pythonpath e.g. (c:\\python27) or add the path in 
 # sys.path
clr.AddReference("mydll")
import mynamespace
obj = mynamespace.Foo()
obj.bar()

【讨论】:

猜你喜欢
  • 2021-11-03
  • 2011-11-27
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多