如何使用ctypes从C\dll访问方法?

2024-10-06 12:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有点糊涂了,以前从来没有用过dll,所以希望我的问题有意义。在

我试着使用一个C#dll,里面有很多不同的类。我在这里读过其他问题,这些问题显示了示例代码,例如:

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

我很理解。我还不知道如何使用dll中类中的方法,如果这有意义的话。因此,如果dll包含一个名为“Foo”的类和一个“bar”方法,如何使用ctypes调用bar?另外,ctypes是访问这个dll的最佳方法还是应该使用其他方法?在


Tags: 方法代码import示例foolibbarctypes
1条回答
网友
1楼 · 发布于 2024-10-06 12:24:27

您应该使用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()

相关问题 更多 >