rust 获取UserDefaultLocaleName

[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!");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值