在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
如何才能获得正确的转化。
答案 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)
这使我的程序运行但不是真正的解决方案