2个不稳定版本
0.2.0 | 2021年2月7日 |
---|---|
0.1.0 | 2021年2月7日 |
#7 in #null-terminated
4KB
Rust宽字符串字面量
此库提供了一个宏,在编译时将字符串字面量转换为UTF-16,允许您将其传递给期望指向空终止宽字符串指针的基于C的API,例如Windows API。通过允许您直接在可执行文件中存储UTF-16字符串,从而在运行时节省转换开销。语法尽可能简洁,以帮助避免行噪声。
let my_string: &'static u16 = w!("Hello, world!");
// These strings are references to 16-bit integers, which Rust considers “close enough” to the raw pointers that APIs expect to work without casting.
MessageBoxW(null_mut(), my_string, w!("Error"), MB_ICONEXCLAMATION | MB_OK);
此宏的目的是提供C基于API所需的确切字符串形式。如果您想要首先操作字符串,或者想要为非静态字符串使用UTF-16,这不是您想要的,尽管它可能对您仍然有用。
依赖项
~1.5MB
~35K SLoC