关于vb6调用python的问题
python做图形界面很费劲 ,但语言功能很强大,vb6做界面不好看,但很方便,所以就像到了vb6和python通讯问题,随着找度娘,还真找到了方法,但试了好多天实现不了,一、按照例子,python没问题,运行没错误,但vb6在创建set PythonUtils = CreateObject("PythonDemos.Utilities")时,提示“自动化错误”,不知这个错误是怎么造成的,还是需要引用什么东西?
关于vb6和python的调用出错问题在网上没找到答案,可以说这方面东西很难找
二、然后我按使用python做了一个调用 程序 ,调用的这个python例子中的“PythonDemos.Utilities”com,是能调用成功的,证明python写的这个COM组件是没问题。
三、现将网上的例子放在这里,请各位大佬看看哪里有问题,还少什么东西,为什么我就不能成功调用了,有时间各位也试试,共同研究一下。
vb6实例如下:
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代码如下:
#需要先安装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) 网上说了 需要用到32位的python 谢谢三楼 网上说了 需要用到32位的python,哦还有这一说呢 我使用的确实是64位python,这个说法没在网上看到过,一直还钻死牛角呢,那老师问一下32位python和64位可以并存吗?我安装在两个目录是否可以? 本帖最后由 cube 于 2019-11-28 13:46 编辑
hsgzr_sj7 发表于 2019-11-28 10:30
谢谢三楼 ,哦还有这一说呢 我使用的确实是64位python,这个说法没在网上看到过,一直还钻死牛角呢,那老师 ...
完全可以.
至于32-64位的问题.我认为,都可以.(未测试)
如果不可以,我认为是vb6不支持64位com 有兴趣的可以也试试 看到底是什么原因 找到答案没有
页:
[1]