【发布时间】:2016-07-10 06:44:16
【问题描述】:
我正在包装一个 C API,它允许调用者通过函数调用设置/获取任意指针。通过这种方式,C API 允许调用者将任意数据与 C API 对象之一相关联。该数据不用于任何回调,它只是一个指针,用户可以隐藏并稍后获取。
我的包装结构实现了包含此指针的 C 对象的 Drop 特征。我希望能够做的,但不确定是否可能,如果包装器结构下降时指针不为空,则数据是否正确下降。我不确定如何从原始 c_void 指针恢复正确的类型。
我想到的两个选择是
- 在包装器中实现这两个调用的行为。不要对 C API 进行任何调用。
- 不要试图为这些功能提供任何更安全的接口。说明指针必须由包装器的调用者管理。
我想做的事可能吗?如果没有,这种情况是否有普遍接受的做法?
【问题讨论】:
标签: rust