我使用pythonnet而不是ironpython。
有一个这样的函数:
test(ref string p1,out string p2)
如何在Python 3.6中调用
test
?
import clr
import sys
import System
sys.path.append(r'd:\dll')
clr.FindAssembly('communication.dll')
from communication import *
dll=IEC62056()
dll.test(----------)
如果没有 communications.dll,我无法测试代码,因此请检查以下代码是否适合您:
import clr
import sys
sys.path.append("D:\\dll") # path to dll
clr.AddReference("communication") # add reference to communication.dll
from communication import test
ref_string_p1 = "----------"
out_string_p2 = test(ref_string_p1)
print(out_string_p2)
您可以将 ref 作为常规参数提供,并任意提供。 pythonnet 会将它们作为元组按位置返回。
假设c#中的
void test(ref string p1,out string p2)
,
你在 python 中得到 p1, p2 = test(p1, None)