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

时间:2018-01-09 00:26:32

标签: 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尝试访问此dll的最佳方式,还是我应该使用其他东西?

1 个答案:

答案 0 :(得分:2)

你应该使用pythonnet模块。 以下是它在Windows上的工作方式。

  1. 安装:# 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()
  2. 用法:
  3. e.g。

    var dropDown = document.getElementById('myDropDown');
    for(var i = 0; i < dropDown.options.length; i++) {
        if(dropDown.options[i].text == 'value you want to set in drop down') {
         dropDown.selectedIndex = i; 
         break;
     }