python做图形界面很费劲 ,但语言功能很强大,vb6做界面不好看,但很方便,所以就像到了vb6和python通讯问题,随着找度娘,还真找到了方法,但试了好多天实现不了,
一、按照例子,python没问题,运行没错误,但vb6在创建set PythonUtils = CreateObject("PythonDemos.Utilities")时,提示“自动化错误”,不知这个错误是怎么造成的,还是需要引用什么东西?
关于vb6和python的调用出错问题在网上没找到答案,可以说这方面东西很难找
二、然后我按使用python做了一个调用 程序 ,调用的这个python例子中的“PythonDemos.Utilities”com,是能调用成功的,证明python写的这个COM组件是没问题。
三、现将网上的例子放在这里,请各位大佬看看哪里有问题,还少什么东西,为什么我就不能成功调用了,有时间各位也试试,共同研究一下。
vb6实例如下:
[Visual Basic] 纯文本查看 复制代码 Private Sub Form_Load()
Set PythonUtils = CreateObject("PythonDemos.Utilities")
response = PythonUtils.SplitString("Hello from VB")
For Each Item In response
MsgBox Item
Next
End Sub
python代码如下:
[Python] 纯文本查看 复制代码 #需要先安装pipywin32模块
class PythonUtilities:
_public_methods_=['SplitString']
_reg_progid_='PythonDemos.Utilities'
# 使用"print (pythoncom.CreateGuid())" 得到一个自己的clsid,不要用下面这个!!
_reg_clsid_='{5FCAC95E-653A-484C-8568-A02D5E0256E8}'
def SplitString(self, val, item=None):
import string
if item !=None:
item=str(item)
val=str(val)
return val.split(item)
if __name__=='__main__':
print ('Registering COM server...')
import win32com.server.register
win32com.server.register.UseCommandLine(PythonUtilities) |