swift呼叫C++;方法具有char**参数,并且需要操作char**参数 有C++库,使用SWIFT调用C++函数。但难点在于,这个C++函数具有char *参数。我知道如何用SWIFT代码来桥接C++银行代码。但是我不知道如何在SWIFT中编写C++ char **,这样Swift就可以调用C++函数。p> 这是C++函数,我应该调用: `int avcmdtest( int argc, char ** argv ){ }`

swift呼叫C++;方法具有char**参数,并且需要操作char**参数 有C++库,使用SWIFT调用C++函数。但难点在于,这个C++函数具有char *参数。我知道如何用SWIFT代码来桥接C++银行代码。但是我不知道如何在SWIFT中编写C++ char **,这样Swift就可以调用C++函数。p> 这是C++函数,我应该调用: `int avcmdtest( int argc, char ** argv ){ }`,c++,swift,C++,Swift,在Swift中,我需要这样的东西: `var inputArgChar:Array<String> inputArgChar[0] = "some chars" inputArgChar[1] = "some chars" inputArgChar[2] = "some chars" avcmdtest(3, &inputArgChar)` var char: CChar = CChar("1")! let charPointer = UnsafeMutabl

在Swift中,我需要这样的东西:

`var inputArgChar:Array<String>
 inputArgChar[0] = "some chars" 
 inputArgChar[1] = "some chars" 
 inputArgChar[2] = "some chars"
 avcmdtest(3, &inputArgChar)`
var char: CChar =  CChar("1")!
let charPointer = UnsafeMutablePointer<CChar>(&char)
`var-inputArgChar:Array
inputArgChar[0]=“一些字符”
inputArgChar[1]=“一些字符”
inputArgChar[2]=“一些字符”
avcmdtest(3,&inputArgChar)`
但是,斯威夫特说:

无法将类型数组(字符串)的值转换为预期的参数类型“UnsafeMutablePointer(UnsafeMutablePointer(Int8>?>!”


有人能帮我吗?如果你能给出一些解释,我将不胜感激。

你需要创建
非女性化指针。
。但请先阅读这篇文章,因为它很难使用

可能是这样的:

`var inputArgChar:Array<String>
 inputArgChar[0] = "some chars" 
 inputArgChar[1] = "some chars" 
 inputArgChar[2] = "some chars"
 avcmdtest(3, &inputArgChar)`
var char: CChar =  CChar("1")!
let charPointer = UnsafeMutablePointer<CChar>(&char)
var char:CChar=CChar(“1”)!
让charPointer=unsafemeutablepointer(&char)

请记住,当您使用
Unsafemeutablepointer
时,您应该手动释放内存。

此网页似乎描述了此问题:@Martin R,谢谢好的,我会的,谢谢