Rust 在没有不安全块的情况下调用WinAPI

Rust 在没有不安全块的情况下调用WinAPI,rust,Rust,我刚开始学习Rust,想知道是否可以在不安全的情况下调用WinAPI函数 extern crate libc; fn main() { unsafe { libc::funcs::extra::kernel32::GetCurrentProcessId(); } } 不,这是不可能的,因为它们直接绑定到外部C库中的函数,就像libccrater中的几乎所有东西一样。像GetCurrentProcessId()这样的函数可能不太明显,但这些函数是不安全的,因为它

我刚开始学习Rust,想知道是否可以在不安全的情况下调用WinAPI函数

extern crate libc;

fn main() {
    unsafe {
        libc::funcs::extra::kernel32::GetCurrentProcessId();
    }
}

不,这是不可能的,因为它们直接绑定到外部C库中的函数,就像
libc
crater中的几乎所有东西一样。像
GetCurrentProcessId()
这样的函数可能不太明显,但这些函数是不安全的,因为它们中有很多函数接受并返回原始指针和以null结尾的字符串

为了在没有
不安全的情况下调用它们,应该有一个合适的安全包装器,就像任何其他C库一样。据我所知,目前还没有这样的包装纸。但是您可以只为所需的WinAPI函数子集编写一个,这应该不会太难。您可以找到有关如何为外部库和应用程序编写安全包装的更多详细信息