トップ回答者
C++/WinRTでデフォルトのソースコードがコンパイルエラーになります

質問
-
1.現象
(1)プロジェクトの新規作成で「BlankApp(C++/WinRT)」を選択して、新規作成を行う。
(2)自動的に生成されたソースコードを全く変更しないでビルドすると、多数のビルドエラーが出る。
(3)自動生成されたソースファイル「MainPage.cpp」を見ると、次ののエラーが表示される。
#include "pch.h"
#include "MainPage.h"
#include "MainPage.g.cpp"
using namespace winrt;
using namespace Windows::UI::Xaml;
3行目の「#include "MainPage.g.cpp"」で「ソースファイルを開けません"MainPage.g.cpp"」のエラーとなる。
5行目の「using namespace Windows::UI::Xaml;」で「Windows::」の部分が、「名前の後に‘::~’をつけることのできるのはクラス名または名前空間名だけです」のエラーとなる。
この2つのエラーが原因と思われるが、「MainPage.cpp」には多数のエラーが表示される。
2.当方の環境
(1)Windows 11 Pro. 64ビット (Windows Updateで最新版にしてあります)
(2)Visual Studio Community 2022 Version17.2.3(現時点での最新版です)
以上、よろしくお願いします。
回答
すべての返信
-
2022 17.2.3 / 2022 17.3.0 Preview1.1でおなじような状態にはできました
プロジェクト名がwinrtから始まるとビルドに失敗する
が、同じ原因かは情報不足で不明です。
ビルドしたら出力ウィンドウにはどんなエラーが出てるか書いた方がいいです。
*.g.cpp/*.g.hなどはxamlから生成されるので、その生成処理で失敗しているはずです。個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
-
gekka様
いつもお世話になります。アドバイスありがとうございます。ご指摘のビルドエラーは下記の通りです。
ビルドを開始しました...
1>------ ビルド開始: プロジェクト: BlankApp4, 構成: Debug x64 ------
1>cppwinrt : error Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。
1>D:\Windows 11 データ\ドキュメント\Visual Studio 2022\Projects\C++/WinRT\BlankApp4\packages\Microsoft.Windows.CppWinRT.2.0.210806.1\build\native\Microsoft.Windows.CppWinRT.targets(842,9): error MSB3073: コマンド ""D:\Windows 11 データ\ドキュメント\Visual Studio 2022\Projects\C++/WinRT\BlankApp4\packages\Microsoft.Windows.CppWinRT.2.0.210806.1\build\native\..\..\bin\"cppwinrt @"x64\Debug\BlankApp4.vcxproj.cppwinrt_comp.rsp"" はコード 1 で終了しました。
1>プロジェクト "BlankApp4.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 成功 0、失敗 1、最新の状態 0、スキップ 0 ==========
-