我想用 Python.net 调用.Net dll。从本质上讲,我想做的是操作一个硬件设备,该设备附带一些 dll 和用于操作它的示例 C# 代码。
我想在 python 中重新实现的 C# 代码示例是:
string[] strDeviceKeys = null;
CmdLib8742 cmdLib = new CmdLib8742 (true, 5000, ref strDeviceKeys);
CmdLib8742 来自 .net dll。
python.net 似乎安装正确。
我可以在 python 中做到这一点:
import clr
clr.AddReference('CmdLib')
import NewFocus.Picomotor
cl = NewFocus.Picomotor.CmdLib8742()
它运行没有错误,但显然似乎并没有真正连接到设备。
似乎我需要将python类型转换为C#可以理解的类型,因此我可能不得不将true
替换为System.Boolean(True)
。但我不清楚我是如何通过这个ref strDeviceKeys
.我猜这是在传递对字符串数组的引用,但我不知道如何在 python 中做到这一点。任何帮助将不胜感激。
谢谢。
您可能需要查看ctypes
库,它允许在特定于体系结构的值和 Python 值之间进行转换。