Исключение выдается при объявлении переменной, объявленной как глобальная для модуля перевода.
Сообщество Visual Studio 2017, версия 15.9.5, с установленным расширением C ++ / WinRT.Проект был запущен из шаблона «Пустое приложение (C ++ / WinRT)».
Я хочу, чтобы переменный массив SolidColorBrush myBrushes[2];
использовался глобально только в одной единице перевода. Он объявлен в пространстве имен переводаunit.
Я попытался полностью определить тип, пометив тип как static
и попробовав его без указания массива.
#include "pch.h"
#include "MainPage.h"
//#include <winrt/Windows.UI.Xaml.Media.h>
using namespace winrt;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
//*************************************************************************************************
namespace winrt::event_Experiment::implementation
{
//*************************************************************************************************
//Windows::UI::Xaml::Media::SolidColorBrush myBrushes[2];
//static SolidColorBrush myBrushes[2];
SolidColorBrush myBrushes[2];
//*************************************************************************************************
MainPage::MainPage()
{
InitializeComponent();
//myBrush.Color(Windows::UI::Colors::Blue());
//myBrush[1].Color(Windows::UI::Colors::Red());
//myStackPanel().Background() = myBrush;
//SolidColorBrush tempBrush = SolidColorBrush(winrt::Windows::UI::Colors::Blue());
//myBrush(tempBrush);
myButton2().Click({ this, &MainPage::ClickHandler2 });
myStackPanel().PointerPressed({ this, &MainPage::spPointerPressed });
//myBrushes[0].Color(Windows::UI::Colors::Blue());
//myBrushes[1].Color(Windows::UI::Colors::Red());
}
Исключение показано на рисунке ниже.
Заявление, сделанное Microsoft в мае 2018 года, объявив об обновлении C ++ / WinRT, заключается в том, что это прямой C ++ 17, который допускает такое объявление.
Как мне заставить это работать? Спасибо.