【问题标题】:Calling .Net function from IronPython [VS2012]从 IronPython [VS2012] 调用 .Net 函数
【发布时间】:2014-11-21 18:54:49
【问题描述】:

我正在尝试从 IronPython(VS-2012) 调用 .Net 函数

.NET 功能:

public int GetData(uint numberOfSamples, float[] iBuffer, float[] qBuffer){..}

IronPython:

# Here's my code in IronPython
numSamples = 1024
from array import array
iData = array('f')
qData = array('f')

GetData(numSamples, iData, qData)

最后一行将抛出以下异常,(来自 Locals Window -VS2012)

我该如何解决这个问题?

【问题讨论】:

标签: .net arrays ironpython


【解决方案1】:

您可以像这样传递floats(即System.Single)的数组:

iData = System.Array[System.Single]([1.0, 2.0, 3.0])
qData = System.Array[System.Single]([4.0, 5.0, 6.0])
GetData(numSamples, iData, qData)

编辑:如果您想预先分配数组并且没有实际的 python 内容,请使用:

iData = System.Array.CreateInstance(System.Single, 1024)

【讨论】:

  • 谢谢 Pawel,这似乎可行,但我想定义数组的大小而不是值,这可能吗?
【解决方案2】:

虽然我接受了 Pawals 的回答,但我最终还是这样使用

iData = Array.CreateInstance(System.Single, 1024)
qData = Array.CreateInstance(System.Single, 1024)

我从这个article找到的。

【讨论】:

  • 我猜我们正在同时研究 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 2015-12-20
  • 2019-03-22
相关资源
最近更新 更多