本記事の内容は以下の環境で確認しました.
- Windows 10 v1903
- Rust 1.36 stable-x86_64-pc-windows-msvc
本論
Rust コードを Windows で普通にコンパイルして実行ファイル (.exe) を生成するとコンソールアプリ扱いとなるため, それを実行するとコマンドプロンプトのウィンドウ (いわゆる DOS 窓) が開かれます. これを防ぐには, ソースコード (src/main.rs
) の冒頭に
#![windows_subsystem = "windows"]
というアトリビュートを設定します. これだけで Windows アプリ扱いとなるため, 実行時に DOS 窓が表示されません. より詳しくは下の参考文献をどうぞ.
なお, DOS 窓がないため標準出力および標準エラーは表示されず虚空の彼方へ消え去ります.
コード例
hello.txt
という空ファイルを生成するだけのプログラムです. (強制的に空ファイルで上書きするので注意)
#![windows_subsystem = "windows"]
fn main() {
let _ = std::fs::File::create("./hello.txt").unwrap();
}