none
C++/WinRTでデフォルトのソースコードがコンパイルエラーになります RRS feed

  • 質問

  • 1.現象

    (1)プロジェクトの新規作成で「BlankAppC++/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年6月4日 17:57

回答

  • 1>cppwinrt : error Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。

    1>D:\Windows 11 データ\ドキュメント\

    ディレクトリパスにASCII以外の文字が含まれていて失敗するよくあるやつですね。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク fghck856 2022年6月6日 2:00
    2022年6月6日 0:27

すべての返信

  • 2022 17.2.3 / 2022 17.3.0 Preview1.1でおなじような状態にはできました
    プロジェクト名がwinrtから始まるとビルドに失敗する

    が、同じ原因かは情報不足で不明です。

    ビルドしたら出力ウィンドウにはどんなエラーが出てるか書いた方がいいです。
    *.g.cpp/*.g.hなどはxamlから生成されるので、その生成処理で失敗しているはずです。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2022年6月5日 22:47
  • 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 ==========

    2022年6月5日 23:12
  • 1>cppwinrt : error Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。

    1>D:\Windows 11 データ\ドキュメント\

    ディレクトリパスにASCII以外の文字が含まれていて失敗するよくあるやつですね。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク fghck856 2022年6月6日 2:00
    2022年6月6日 0:27
  • gekka様

    ありがとうございました。ディレクトリパス名をアルファベット文字列のみに変更して、ビルド・実行ができるようになりました。

    感謝、感謝です。

    2022年6月6日 1:57