C#的dll有一个接口是
Test.Data.GetSize("PA", ref width, ref height);
python调用的时候该怎么传入
ref width,ref height
python代码如下
import clr
clr.AddReference(r"D:\11\Test.dll")
import Test
Test.Data.GetSize("PA",?,?)
C#的dll有一个接口是
Test.Data.GetSize("PA", ref width, ref height);
python调用的时候该怎么传入
ref width,ref height
python代码如下
import clr
clr.AddReference(r"D:\11\Test.dll")
import Test
Test.Data.GetSize("PA",?,?)
引自免费微信小程序:皆我百晓生
要在Python中调用C#的DLL并传入ref参数,你可以使用Python的ctypes
库来实现。ctypes
库提供了一种调用C函数的机制,可以用于调用C#的DLL。
下面是一种可能的解决方案:
import ctypes
# 加载DLL
test_dll = ctypes.WinDLL(r"D:\11\Test.dll")
# 定义参数类型
test_dll.GetSize.argtypes = [ctypes.c_char_p, ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int)]
# 定义传入的参数
width = ctypes.c_int()
height = ctypes.c_int()
# 调用函数
test_dll.GetSize(b"PA", ctypes.byref(width), ctypes.byref(height))
# 打印结果
print("Width:", width.value)
print("Height:", height.value)
在上面的代码中,我们首先使用ctypes.WinDLL
加载了C#的DLL。然后,我们使用argtypes
属性明确指定了GetSize
函数的参数类型。接下来,我们定义了width和height变量作为传入参数,并使用ctypes.byref
将这些变量的地址传递给函数。最后,我们使用value
属性获取C#函数返回的结果。
需要注意的是,我们在调用C#函数时传递字符串参数时需要使用b"PA"
来表示一个字节字符串。
希望这个解决方案对你有帮助!如果你需要进一步的帮助,请随时提问。