A Windows strings library that supports AString (ANSI string) and WString (Unicode string).
Add the following lines to your Cargo.toml:
[dependencies]
windy = "0.2.0"
An example of parsing the outputs of cmd.exe.
```rust use windy::AString; use std::process::Command;
fn main() { let o = Command::new("cmd") .args(&["/c", "ThisCommandDoesNotExist"]) .output().unwrap(); let (stdout, stderr) = unsafe { ( AString::newunchecked(o.stdout), AString::newunchecked(o.stderr) ) }; println!("stdout: {:?}", stdout); println!("stderr: {:?}", stderr); } ```
If you don't want to use std, use --no-default-features
.
AString and WString are not available when no_std.
windy-macros to convert a UTF-8 string to WString or AString at compile time.
[dependencies]
windy = "0.2.0"
windy-macros = "0.1.1"
```rust use windy::WStr; use windy_macros::wstr;
extern "system" { pub fn MessageBoxW( hWnd: *mut c_void, lpText: *const u16, lpCaption: *const u16, uType: u32, ) -> i32; }
fn main() { let text: &WStr = wstr!("World"); let caption: &WStr = wstr!("CaptionW"); unsafe { MessageBoxW(0 as , text.asptr(), caption.as_ptr(), 0); } } ```
This software is released under the MIT or Apache-2.0 License, see LICENSE-MIT or LICENSE-APACHE.