IronPython从Python String转换为SByte数组

时间:2013-06-19 15:39:33

标签: string ironpython arrays

在IronPython中使用外部dll我必须将字符串传递给 char数组(char var [len];在C ++ .NET中)。似乎预计会传递一个SByte数组。

如果我尝试

myVarFromCLibrary = myPyString

我得到了

TypeError: expected Array[SByte], got str

网络上的信息非常少。到目前为止,我发现我可以应用这样的东西:

from System import Array
...
myCString = Array[System.SByte](myPyString)

myVarFromCLibrary = myCString

如果我这样做,我会收到如下错误:

TypeError: expected SByte, got str

如何才能获得正确的转化。

1 个答案:

答案 0 :(得分:0)

与此同时,我找到了解决方法但没有解决方案:

def strToCharArray(theCharArray,theString):
  asBytes = bytes(theString,'ascii')  
  for i in xrange(len(theString)):
    theCharArray[i] = ord(asBytes[i])
  theCharArray[len(asBytes)] = 0

def charArrayToStr(theCharArray):  
  chars = []
  i     = 0
  while theCharArray[i]>0: 
    chars.append(chr(theCharArray[i]))
    i += 1
  return "".join(chars)

这使我的程序运行但不是真正的解决方案