首页 > 解决方案 > 如何将指针的地址传递给 Swift 中的 C API 的参数?

问题描述

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

DEV_STATUS OpenDevice (PVOID * pHandle);

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

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

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

标签: swiftxcode

解决方案


您正在寻找这个:

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

或这个:

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

推荐阅读