3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UWPSpyのビルドを通じてC++の環境構築をしてみた話

Last updated at Posted at 2024-09-21

最初はUWPSpy (https://ramensoftware.com/uwpspy) をそのまま使おうとしたんですが、Windows11でダウンロードしたバイナリが起動しないということがあって、自前でビルドを試みた記録(そもそもなぜ起動しないのかは後で判明したので全くの無駄化と思った)

起動しなかった理由

Window11だったから
image.png

UWPSpyとは

UWPやWin UI3で作成されたアプリケーションの内部コントロールと階層関係を見られるツール。後で分かったのだが、これで内部コントロールのクラス名やNameプロパティを見たからといって、C#のUI Automationでアクセス出来たりはせず、常にNullが返ってきた(やり方知っていたらコメントください)。
参考:https://qiita.com/ken_hamada/items/501b164374667319d270

ChatGPT出力:AutomationPeerの未実装

UI Automation を通じてUI要素にアクセスするためには、対象のコントロールに対応する AutomationPeer が実装されている必要があります。もしアプリケーション内のコントロールが AutomationPeer を持たない場合、UI Automation を介しての操作ができません。

つまり、これをクリアするためにC++の環境構築をしておくのはそれなりに有意義でした。

UWPSpyの環境構築を行う

git Clone https://github.com/m417z/UWPSpy.git 

Gsudo(https://github.com/gerardog/gsudo) をインストールしておくとよい。管理者権限の切り替えが気軽に出来るコマンドを追加する。

1. ATL (Active Template Library) がインストールされているか確認

Visual Studio で ATL を使用するには、C++ のデスクトップ開発環境と共に ATL がインストールされている必要がある。
Visual Studio Installer を開き、「C++によるデスクトップ開発」ワークロードの「ATLサポート」がチェックされているか確認。

インストーラーは以下で出せる
ツール → ツールと機能を取得
image.png

以下のようにATLが入っているチェックボックスを選択すればよい
image.png

「C/C++」 → 「全般」 → 「追加のインクルードディレクトリ」に atlapp.h のファイルが存在するパスを追加

image.png

これでatlapp.hを読み込めるようになる、はず

vcpkg パッケージマネージャを使用して、WTL (Windows Template Library) をインストールする

※以下の手順を順番に行うことを推奨します

vcpkg をインストール

Gsudo
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat

vcpkg をシステムに統合

./vcpkg integrate install

WTL をインストール

vcpkg install wtl:x64-windows

プロジェクトへの vcpkg の統合

./vcpkg integrate project

image.png

大量のErrorに対処する

image.png

include *tth. 'atlapp.h':No such file or directory

'atlapp.h':No such file or directory UWPSpy G:\repsitory\UWPSpy\UWPSpy\stdafx.h 29

が出る。ほかにもけっこういろいろ読み込めないモジュールが出る

stdafx.hにあるモジュールがそのままだと読み込めない
以下はEvryThing
image.png

このPathにstdafx.h内の読み込めないvcpkg関連のモジュールを全て放り込めば動く。
不要かも?

ビルドに成功してもこれは毎回出る。直し方分らない
image.png

ビルド成功時のGIFイメージ

bandicam 2024-09-21 18-01-26-868_Harua.mp4.gif

構成マネージャーはこんな感じ
image.png

あとがき

記録し損ねた部分もありますが、概ねこの通りにやればUWPSpyの開発環境を構築できると思います

いいね・ストックが励みになります。
悪かったらバッドボタンをお願いします。

3
4
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?