我在 Python 2.7(使用 pythoncom)中创建了一个 COM 服务器,并想从 C++ 代码中调用它,但我不知道如何。
Python COM 服务器:
import pythoncom
class PyCOMTest:
_public_methods_ = ['getNextNum']
_reg_progid_ = "<some progid>"
_reg_clsid_ = "{<some hash string>}"
_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
numbb = 0
def __init__(self):
self.num = 0
def getNextNum(self):
print "method called"
PyCOMTest.numbb = PyCOMTest.numbb + 1
return PyCOMTest.numbb
if __name__ == '__main__':
print "Registering COM server..."
import win32com.server.register
win32com.server.register.UseCommandLine(PyCOMTest)
我可以使用用 Python 编写的客户端和另一个用 VBScript 编写的客户端来调用 COM 服务器。
我知道 C++ 需要一个扩展 IUnknown 的接口来调用 CoCreateInstance 和 QueryInterface,但我希望 COM 服务器完全使用 Python。
有任何想法吗?