我正在使用“python.net”从Python中调用一个在dll中的C#函数。大多数函数可以正确地在Python中调用。但是,由于参数数据类型的问题,有一个函数我存在困扰。
在C#中,有一个函数需要使用unsigned long类型:
bool SetValueAsInt64U(ulong rValue);
在Python中,我使用以下方式调用:
SetValueAsInt64U(22);
这会出现错误信息: 类型错误:对于SetValueAsInt64U没有匹配给定参数的方法:()
我还尝试使用ctypes,并像这样调用函数:
SetValueAsInt64U(c_ulong(22));
这会产生类似的错误: TypeError: SetValueAsInt64U 的给定参数无法匹配:(<class 'ctypes.c_ulong'>)。
更多信息,请参考下面的正确调用。 在C#中,还有一种使用有符号参数的函数。
bool SetValueAsInt64(long rValue)
在Python中,我可以调用函数而不会收到任何错误消息,例如:
SetValueAsInt64(-5);
那么问题是如何从Python调用带有无符号类型参数的C#函数?