使用Python中的COM DLL

2024-05-17 19:13:29 发布

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

我有一个DLL,它是一个用于Pastel合作伙伴会计系统的SDK。使用Dependency Walker我可以看到DLL有以下方法:DllRegisterServer、DllUnregisterServer、DllGetClassObject

有了这个库,有一个示例VB程序,它引用了DLL并将其实例化如下:

Dim SDK As New PasSDK.PastelPartnerSDK

我能够使用python中的这个库的唯一方法是在Windows中注册它:

^{pr2}$

然后在python中像这样使用它:

import win32com.client
sdk = win32com.client.Dispatch("PasSDK.PastelPartnerSDK")
sdk.SetLicense(...)
etc...

但是,有没有办法不先注册就直接使用这个库?比如:

from ctypes import *
sdk = cdll.LoadLibrary('PasSDK.dll')

当我这样做的时候我能看到sdk.DllGetClassObject是一个函数,但我如何像VB程序一样实例化它,有可能吗?在


Tags: 方法import程序client系统sdk合作伙伴win32com
1条回答
网友
1楼 · 发布于 2024-05-17 19:13:29

不管你用什么语言,你都会发现同样的问题。也就是说,在VB中,还必须注册组件。在

但是,您可以为此使用registration free COM。为EXE创建一个清单(例如。python.exe或应用程序的EXE名称),它依赖于声明其提供的类、接口和/或类型库的清单。在

相关问题 更多 >