[package]
name = "culture_test"
version = "0.1.0"
authors = ["许阳 <mksword@126.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["winnls", "winnt"] }
#[cfg(windows)]
extern crate winapi;
#[cfg(windows)]
fn test() {
use winapi::um::winnls::{GetUserDefaultLocaleName};
use winapi::um::winnt::{LPWSTR, LOCALE_NAME_MAX_LENGTH};
unsafe {
let mut buffer = [0u16; LOCALE_NAME_MAX_LENGTH];
let l_name:LPWSTR = buffer.as_mut_ptr();
GetUserDefaultLocaleName(l_name, LOCALE_NAME_MAX_LENGTH as i32);
let mut xa:Vec<u16> = Vec::new();
for value in buffer.iter() {
if value > &0u16 {
xa.push(*value);
} else {
break;
}
}
let x = String::from_utf16(xa.as_slice()).unwrap();
println!("{}", x);
}
}
fn main() {
test();
println!("Hello, world!");
}