🗂

Windows 開発キット 2023

2022/11/05に公開
2

Windows 開発キット 2023 を購入して使ってみた。

開発情報

Windows Dev Kit 2023 関連のページ

Visual Studio 2022 17.4 以降

インストールしたソフト

Google Chrome

arm64 版はなさそう。
以下を参考にインストールしたが、x64版だった。

7zip

7zip は arm64 用のバイナリが公開されている

Git for windows

Git for Windows ARM64 (beta) が公開されている。(2022/12/13 現在で 2.39.0(beta) が最新)

>git --version --build-options
git version 2.38.1
cpu: aarch64
built from commit: bb3e90354601e0a3436a04d2f15b4a8a4d680d50
sizeof-long: 4
sizeof-size_t: 8
shell-path: /bin/sh
feature: fsmonitor--daemon

Visual studio code

以下からarm64 版をダウンロードできる。

system 版を選んでも user 版がダウンロードされる。

TortoiseSVN

以下からarm64 版をダウンロードできる。

cmake

以下からarm64版をダウンロードできる

アプリがARM64 ネイティブか確認する方法

Windows 開発キット 2023 では ARM64 バイナリも x64バイナリ(64bitアプリ) も x86バイナリ(32bit) も動作するので Windows 開発キット 2023ではネイティブアプリかわからない。

Intel PC での実行

バイナリを Intel ベースの PC にコピーして、実行すると以下のようなエラーになるので判別は可能

このバージョンの ...\arm64-test.exe は、実行中の Windows のバージョンと互換性がありません。コンピューターのシステム情報を確認してから、ソフトウェアの発行元に問い合わせてください。

ファイルをバイナリエディタで確認

バイナリをバイナリエディタで開くことによりネイティブアプリか判断可能

Windows の実行ファイルは PE Format という形式のため、PE ヘッダの直後の Machine フィールドの値を確認することにより実行ファイルがターゲットにしている CPU アーキテクチャを確認できる。

  • IMAGE_FILE_MACHINE_I386 0x014c Intel 386
  • IMAGE_FILE_MACHINE_AMD64 0x8664 AMD64 (K8)
  • IMAGE_FILE_MACHINE_ARM64 0xAA64 ARM64 Little-Endian

以下で 0x64, 0xAA(Little endian で 0xAA64) になっているので arm64 と確認できる。

Machine フィールドおよび定義値は以下を参照

PE フォーマットに関しては以下を参照

Discussion

bunniesfieldbunniesfield

Visual Studio 2022 がインストールされているなら、スタートメニューの「Visual Studio 2022」項目の下の「Developer Command Prompt for VS 2022」で開くコマンドプロンプト内で dumpbin コマンドが利用可能です。

こんな感じ。

**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.3.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************

C:\Program Files\Microsoft Visual Studio\2022\Community>d:

D:\>cd D:\Projects2022\WindowsFormsApp1\WindowsFormsApp1\bin\ARM64\Release

D:\Projects2022\WindowsFormsApp1\WindowsFormsApp1\bin\ARM64\Release>dir
 ドライブ D のボリューム ラベルは DATA です
 ボリューム シリアル番号は 4C58-AC75 です

 D:\Projects2022\WindowsFormsApp1\WindowsFormsApp1\bin\ARM64\Release のディレクトリ

2022/09/02  22:11    <DIR>          .
2022/09/02  22:11    <DIR>          ..
2022/09/02  22:13             8,192 WindowsFormsApp1.exe
2022/09/02  21:51               184 WindowsFormsApp1.exe.config
2022/09/02  22:13            32,256 WindowsFormsApp1.pdb
               3 個のファイル              40,632 バイト
               2 個のディレクトリ  198,319,411,200 バイトの空き領域

D:\Projects2022\WindowsFormsApp1\WindowsFormsApp1\bin\ARM64\Release>dumpbin /headers WindowsFormsApp1.exe
Microsoft (R) COFF/PE Dumper Version 14.33.31629.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file WindowsFormsApp1.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
            AA64 machine (ARM64)  ← ここ
               2 number of sections
        91BA4D44 time date stamp
               0 file pointer to symbol table
               0 number of symbols
              F0 size of optional header
              22 characteristics
                   Executable
                   Application can handle large (>2GB) addresses

(以下略)
masaru tsuchiyamamasaru tsuchiyama

そうですね。ツールでやるなら、dumpbin が使えますね。
この記事で書いているのは、dumpbin が解析している内容を直接確認しています。