python - 如何将 ulong 类型参数从 Python 传递给 C# 函数?
问题描述
从 Python 中,我正在调用 dll 中的 C# 函数。这是由“python.net”完成的。大多数函数都可以在 Python 中正确调用。但是,由于参数的数据类型,我有一个函数有问题。
在 C# 中,有一个函数采用 unsigned long 类型:
bool SetValueAsInt64U(ulong rValue);
在 Python 中,我用
SetValueAsInt64U(22);
这给出了错误消息: TypeError: No method matches given arguments for SetValueAsInt64U:(<class 'int'>)
我还尝试使用 ctypes,并调用如下函数:
SetValueAsInt64U(c_ulong(22));
这会产生类似的错误:TypeError: No method matches given arguments for SetValueAsInt64U: (<class 'ctypes.c_ulong'>)
有关更多信息,我正在显示正确的呼叫。在 C# 中,还有另一个带有签名参数的函数:
bool SetValueAsInt64(long rValue)
在 Python 中,我可以在没有任何错误消息的情况下调用该函数,例如:
SetValueAsInt64(-5);
所以问题是如何使用 Python 中的无符号参数类型调用 C# 函数?
解决方案
在这种情况下我要做的就是对该方法进行重载以获取一个 int 参数,如果它达到最大 int 范围 2,147,483,647,python 会将其解析为 ulong。
推荐阅读
- node.js - 节点项目在 Canvas.createCanvas() 上无错误退出
- python-2.7 - 如何使用 Python 和 gtk 将文本缓冲区(它包含使用不同字体颜色、系列、样式和大小修改的文本)保存到文件中?
- python - 如何使用 seaborn 热图制作 jupyter HTML-matplotlib 动画?
- javascript - 如何在循环中选择一组数字?
- powershell - 使用某些 cmdlet 返回空值的 Powershell 自定义列
- python - 在 Python 中的大型数据集上使用 OOP 是否有益?
- reference - 包含可变切片的结构
- python - 从 django 渲染的 html 中显示字典
- c# - 将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。该语句已终止
- reactjs - 如何将特定 id 传递给路由的路径?