赞
踩
Cargo.toml 文件内容如下:
- [package]
- name = "winapi"
- version = "0.1.0"
- edition = "2018"
-
- # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
- [dependencies]
- [target.'cfg(windows)'.dependencies]
- winapi = { version = "0.3", features = ["winuser"] }
- #[cfg(windows)]
- extern crate winapi;
- use std::io::Error;
-
- #[cfg(windows)]
- fn print_message(msg: &str) -> Result<i32, Error> {
- use std::ffi::OsStr;
- use std::iter::once;
- use std::os::windows::ffi::OsStrExt;
- use std::ptr::null_mut;
- use winapi::um::winuser::{MessageBoxW, MB_OK};
- let wide: Vec<u16> = OsStr::new(msg).encode_wide().chain(once(0)).collect();
- let ret = unsafe { MessageBoxW(null_mut(), wide.as_ptr(), wide.as_ptr(), MB_OK) };
- if ret == 0 {
- Err(Error::last_os_error())
- } else {
- Ok(ret)
- }
- }
- #[cfg(not(windows))]
- fn print_message(msg: &str) -> Result<(), Error> {
- println!("{}", msg);
- Ok(())
- }
- fn main() {
- print_message("Hello, world!你好!").unwrap();
- }
运行一下,结果如下:
非常 OK!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。