如何使用ctypes和python3多次构造导入DLL?

时间:2018-10-04 20:31:53

标签: python python-3.x class dll ctypes

我正在使用ctypes和python3。

我有一个想要在其中调用使用DLL中函数的方法的类,因此我可以按以下方式在该类 init 中加载DLL并可以从那里访问它。

class example():
    def __init__():
        self.library = ctypes.cdll(example.dll)

    def method_1(self):
        do_something = self.library.FUNCTION(etc...)

这一切都很好,DLL将在每个实例上加载并可以使用。但是我还有其他不在类中的函数:

def func_outside_class():
    library = ctypes.cdll(example.dll)
    do_something_else = library.FUNCTION(etc)

所以我在课堂外有几个这样的东西,我想知道多次在同一个lib上调用cdll是否是错误的做法?对我来说似乎不太正确。我当然可以调用一次,然后在创建时将该实例传递给函数/类实例,但是我希望能够将这些实例导入其他地方使用,因此我很好地包含了它。

有什么想法吗?很高兴得知这很好,但是我不禁想到有一个更优雅的解决方案。

干杯!

0 个答案:

没有答案