swift - 如何将指针的地址传递给 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 返回“无效参数”。
解决方案
您正在寻找这个:
var ppDevHandle = PVOID()
devStatus = OpenDevice(&ppDevHandle)
或这个:
var ppDevHandle: PVOID?
devStatus = OpenDevice(&ppDevHandle)
推荐阅读
- python - 如何从项目文件夹中删除 %SystemDrive%?
- python - 带有if的for循环以检测数据框列中的变量变化
- javascript - 如何使单击更改颜色的列表项?
- c++ - 命令 VSCode 运行以编译 C++ 代码不引用包含路径,导致“没有这样的文件或目录”,尽管在 linting 时很好
- c# - 从另一个用户控件访问 dataGrid 信息
- hibernate - 如何使用 ManyToOne 映射在字段上编写 Hibernate 会话查询 JOIN 不相关实体
- python - 'float' 对象不可下标错误
- javascript - 对于另一个数组中的每个元素,仅从数组中选择两个元素
- selenium - 想要验证 selenium test ng 中的元素文本是否与特定模式匹配
- python - 无需 API 即可自动进行网络搜索