我们正在建立从python到.netvb代码的连接。我们在VB中成功地创建了DLL,并且可以使用CLR将其导入python。从DLL导入类,所有方法都可见。然而,当我们调用一个方法时,我们会因为TypeErrors而失败,即使是没有参数的方法也会失败。
其他(标准的)VB方法工作正常(即from System import String a=String("Some string"))
PS2。用C编写的代码也可以很好地使用这种方法
要与.dll连接的Python代码:#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import os,sys
import site
scriptPath=r"E:\Dropbox\SISTeMA\TRE development\TRE Add-In\visum\Visum_VB_interactions\From PTV\VisumNetAddIn\32Bit"
assemblyPath=r"E:\Dropbox\SISTeMA\TRE development\TRE Add-In\visum\Visum_VB_interactions\Interact\bin\Debug\Interact.dll"
site.addsitedir(scriptPath)
import clr
import System
assemblyPath = os.path.join(scriptPath,assemblyPath)
site.addsitedir(os.path.dirname(assemblyPath))
assemblyFile,extension = os.path.splitext(os.path.basename(assemblyPath))
clr.AddReference(assemblyFile)
from Interact import Interact_Class
编译为dll的VB.net类:
^{pr2}$
Python调用:from Interact import Interact_Class
print Interact_Class.give_me
Interact_Class.give_me()
from System import String
s=String("I will give You")
print Interact_Class.give_me_sth(s)
print Interact_Class.I_will_give_you()
由此产生的错误:Interact_Class.give_me()
TypeError: not enough arguments
print Interact_Class.give_me_sth(s)
TypeError: No method matches given arguments
print Interact_Class.I_will_give_you()
TypeError: not enough arguments
非常感谢!在