Rust + windows-rs でMessageBoxWを呼び出す
main.rs
use windows::Win32::UI::WindowsAndMessaging::{MessageBoxW, MB_OK};
fn main( )->windows::core::Result<()>{
// windows::core::s! マクロ ... 文字列(utf8)をLPCSTR へ変換。
// MessageBoxWを使う場合はLPCWSTR へ変換するw!を使用。
unsafe {
MessageBoxW(
None,
windows::core::w!("ハローワールド"),
windows::core::w!("タイトル"),
MB_OK
);
}
Ok(())
}
Cargo.toml
[package]
name = "myproject"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies.windows]
version = "0.44.0"
# 最新版のバージョンは https://github.com/microsoft/windows-rs で確認
# ・バージョンによってfeaturesを変えなければいけないかもしれない
# ・バージョンによって何が使えるか(どこにあるか?)が変わる
# 例えば windows::Win32::Foundation::HINSTANCE やs!は0.32.0にはない
features = [
# "alloc", # 0.32.0では必要
"Win32_Foundation",
"Win32_UI_WindowsAndMessaging",
]