У меня последняя версия Visual C ++ 17 (15.9.4), и я начал с шаблона UXP directX C ++ (без XAML).
Когда я запускаю это, это работает.Он показывает разноцветный вращающийся кубик в окне или полноэкранном режиме, если я его полноэкранный, а также показывает число FPS в нижней части экрана.
Теперь я хочу добавить к этому локализацию, и я пошел туда:
Локализуйте строки в вашем UI и манифесте пакета приложения
Итак, я добавилэти 2 строки из этого примера:
auto resourceLoader = Windows::ApplicationModel::Resources::ResourceLoader::GetForCurrentView();
this->myXAMLTextBlockElement->Text = resourceLoader->GetString("Farewell");
в моем коде так:
void App::Run()
{
auto resourceLoader = Windows::ApplicationModel::Resources::ResourceLoader::GetForCurrentView();
auto myText = resourceLoader->GetString("Farewell");
while (!m_windowClosed)
{
if (m_windowVisible)
{
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent);
m_main->Update();
if (m_main->Render())
{
m_deviceResources->Present();
}
}
else
{
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending);
}
}
}
Но это не работает, я получаю исключение в первой строке этого кода,говоря, что он не находит карту ресурсов.Я сделал все, что они сказали: создал каталог «Strings», а там каталог «en-US», а там файл Resources.resw, в котором строка «Farewell» установлена на «пока-пока!».
Исключение, которое он выдает:
Exception levée à 0x747D1812 dans App9.exe : exception Microsoft C++ :
Platform::COMException ^ à l'emplacement de mémoire 0x02CDF49C.
HRESULT:0x80073B1F ResourceMap introuvable.
Informations WinRT : ResourceMap introuvable.