swift - 如何在 Swift 中将指针的地址传递给 C API 的参数?

标签 swift xcode

我正在使用 Swift5 语言将 C API 导入 Xcode。我无法将指针的地址传递给参数: 这是 C API 的原型(prototype):

DEV_STATUS OpenDevice (PVOID * pHandle);

我应该为这个输入参数声明什么变量? 我试图在 swift 中声明以下变量:

var ppDevHandle: UnsafeMutablePointer<PVOID?>?
devStatus = OpenDevice(ppDevHandle)

它可以构建,但在调用“OpenDevice”之前“ppDevHandle”为零。 API 返回“无效参数”。

最佳答案

您正在寻找这个:

var ppDevHandle = PVOID()
devStatus = OpenDevice(&ppDevHandle)

或者这个:

var ppDevHandle: PVOID?
devStatus = OpenDevice(&ppDevHandle)

关于swift - 如何在 Swift 中将指针的地址传递给 C API 的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58657196/

相关文章:

具有值类型的 JSONSerialization

ios - 使用 NSPredicate 搜索带有通配符的子字符串

ios - 如何告诉 iOS 11 中的 Smart Invert 不要反转我的应用程序颜色并检测它是否已启用?

ios - 需要获取 UITextField 的占位符文本

ios - 某些自定义 UITableViewCells 未呈现

ios - 使用 UIButton 文本作为文本输入 - Swift

ios - 更新到Xcode 5后的新警告

ios - Xcode错误无效的图像路径-CFBundleIconFiles 144x144、152x152、76x76和120x120

c++ - 内存相关崩溃: 3 Dimensional Array in Cocos2d Game

ios - 自定义 UITableViewCell 去除分隔