python中的ctypes lib

时间:2011-07-12 14:51:30

标签: python ctypes

我想在python中使用OpcDaNet.dll,我用于那个ctypes,但是为了能够使用我所介入的函数,我必须创建一个OpcServer Object的实例,我该怎么做才能用Ctypes ?

感谢您的回答

2 个答案:

答案 0 :(得分:1)

为了使用C ++概念,如CTypes的对象和类,您需要为您正在使用的类创建一个C接口。这在第二个答案here中得到证明。如果您无法访问要调用的外部库的源代码,可以尝试自己编写一个快速库来封装OpcDaNet.dll。如果您需要库中的许多不同函数,这可能会非常繁琐,但不幸的是,由于C ++处理名称修改的方式,CTypes与C ++根本不兼容。

答案 1 :(得分:1)

实际上,如果使用moudle ctypes,则无法创建OpcServer对象的实例。因为C不是面向对象的语言。如果使用C ++生成.dll文件,应该在extern "C"等程序中创建一个C接口,如果你在这个.dll文件中返回一个对象,python'函数无法接收到这个对象。如果我没有弄错。如果你真的想在dll文件中返回一个对象,也许可以使用boost.python来开发dll文件。