如何使用ctypes从C#dll访问方法?
我在这里有点不知所措,以前从未使用过dll,所以希望我的问题有意义 我正在尝试使用一个C#dll,其中包含一系列不同的类。我在这里阅读了其他显示示例代码的问题,例如:如何使用ctypes从C#dll访问方法?,c#,python,.net,dll,python.net,C#,Python,.net,Dll,Python.net,我在这里有点不知所措,以前从未使用过dll,所以希望我的问题有意义 我正在尝试使用一个C#dll,其中包含一系列不同的类。我在这里阅读了其他显示示例代码的问题,例如: import ctypes lib = ctypes.cdll.LoadLibary('pathToDLL') lib.foo() 我很理解。如果有意义的话,我还没有弄清楚如何使用dll中类中的方法。因此,如果dll包含一个名为“Foo”的类和一个方法“bar”,那么如何使用ctypes调用bar?另外,ctypes是尝试访问此
import ctypes
lib = ctypes.cdll.LoadLibary('pathToDLL')
lib.foo()
我很理解。如果有意义的话,我还没有弄清楚如何使用dll中类中的方法。因此,如果dll包含一个名为“Foo”的类和一个方法“bar”,那么如何使用ctypes调用bar?另外,ctypes是尝试访问此dll的最佳方式还是我应该使用其他方式?您应该使用pythonnet模块来实现此目的。 下面是它在windows上的工作方式
pip安装pythonnet
我相信,由于您想要使用C#(.NET)dll,您将无法像使用常规dll那样使用ctypes。我可以帮你,太好了。让我知道你是否能在MAC上工作。由于pythonnet没有为我安装在mac上。@Nitin_k29 for mac请遵循以下说明:
# 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()