我尝试从Swift(3)的动态库中调用C函数。 我想镜像函数调用,如下面的c示例所示。
这是函数声明
extern int parseArgs(int argc, char **argv);
这是正确使用它:
char* args[] = {"-arg1","-arg2","-arg3"};
parseArgs (sizeof(args)/sizeof(char*), args);
到目前为止,我已经能够将字符串转换为正确的格式。这就是我正在使用的。
typealias CHAR = UnsafeMutablePointer<Int8>
func cString(_ s: String) -> CHAR {
return UnsafeMutablePointer<Int8>(mutating: (s as NSString).utf8String!)
}
到目前为止,这么好。现在,我该如何继续?
typealias CHAR_ARRAY = UnsafeMutablePointer<CHAR?>
这似乎是正确的类型。但我不能做实例化。并且知道我和我缺乏低级编程:即使是上面的CHAR解决方案也不是理想的。你会如何调用parseArgs
函数?