【发布时间】:2017-04-10 12:10:52
【问题描述】:
我正在使用 Rust 实现一个 DLL。 DLL 的宿主应用程序将 Win32 文件句柄传递给 DLL 进行读写。
是否存在一些从 Windows 文件句柄返回“普通”Rust 阅读器的函数? Read 或 Write 特征的手动实现是什么样的?
【问题讨论】:
我正在使用 Rust 实现一个 DLL。 DLL 的宿主应用程序将 Win32 文件句柄传递给 DLL 进行读写。
是否存在一些从 Windows 文件句柄返回“普通”Rust 阅读器的函数? Read 或 Write 特征的手动实现是什么样的?
【问题讨论】:
在 Windows 上,有一个特定于平台的特征 FromRawHandle,它是为 std::fs::File 和 std::process::Stdio 实现的。
使用这个转移句柄的所有权;当File 或Stdio 被丢弃时,句柄将被关闭。确保与您的 API 匹配并相应地使用它。
*nix 平台有一个等效的特征:FromRawFd。
【讨论】:
std::os::windows docs 成为doc.rust-lang.org/std/os/index.html 的公共文档的一部分,那就太好了。
rustup doc 会向您展示。