Emi*_*ttt 5 rust
我刚开始学习Rust,想知道是否可以在不安全的情况下调用WinAPI函数?
extern crate libc; fn main() { unsafe { libc::funcs::extra::kernel32::GetCurrentProcessId(); } }
Vla*_*eev 10
不,这是不可能的,因为它们是外部C库中函数的直接绑定,就像libccrate中的几乎所有其他函数一样.函数可能并不明显GetCurrentProcessId(),但是这些函数是不安全的,因为有很多函数接受并返回原始指针和以null结尾的字符串.
libc
GetCurrentProcessId()
为了在没有unsafe应该有适当的安全包装的情况下调用它们,就像任何其他C库一样.据我所知,还没有这样的包装.但是你可以只为你需要的WinAPI函数子集编写一个,它应该不会太难.您可以在此处和此处找到有关如何为外部库编写安全包装的更多详细信息.
unsafe
归档时间:
11 年 前
查看次数:
736 次
最近记录: