UWP, как получить доступ к локальной директории данных - PullRequest
0 голосов
/ 19 февраля 2019

За последние несколько лет я разработал несколько технических приложений, которые используют много кода на C ++, особенно в отношении векторной графики.Эти приложения всегда работают как в Windows, так и в Linux.В последнее время я работаю над тем, чтобы эти приложения работали в защищенных средах, предлагаемых и поощряемых для обеих операционных систем.Как и многие до меня, я борюсь с этой проблемой доступа к данным приложения в среде Windows UWP.

Кажется, это должно быть просто, все, что я хочу от операционной системы, - это имя каталога, в котором я могу хранить и получать доступ к некоторым файлам.Мне все равно, как это имя или насколько ОС хочет иначе ограничить доступ к нему, я просто хочу имя каталога, который я могу использовать.

Конечно, мое исследование привело меня на эту веб-страницу: https://docs.microsoft.com/en-us/uwp/api/Windows.Storage.ApplicationData#Windows_Storage_ApplicationData_LocalSettings. Но пример кода C ++ оставляет желать лучшего, например, требуемые заголовки и библиотечные файлы.Я не могу просто поместить этот код в файл .cpp и получить имя каталога.Кажется, мне нужно создать целую среду для winRT, чтобы иметь хоть какую-то надежду на то, что этот код будет полезен, но это едва ли тривиальный вопрос, и успех до сих пор ускользал от меня.Я не понимаю, почему нужно так много проблем, чтобы получить такую ​​простую и важную информацию.В противном случае у меня нет желания использовать winRT, и это не продуктивное использование моего времени, чтобы понять все его мелочи.Это не решает ни одну из целей моих приложений.Я просто хочу простую функцию, которую я могу вызвать из стандартного C ++, чтобы получить имя каталога.Это слишком много, чтобы спрашивать?

Честно говоря, Microsoft подталкивает меня к выводу, что не хочет самостоятельной разработки приложений для Windows.Разработка для Linux намного проще.Linux делает то, что нужно операционной системе, не создавая ненужных препятствий.Мне бы очень хотелось, чтобы приложения работали и под Windows, но есть предел тому, сколько времени и усилий я могу вложить в это, и Microsoft, похоже, продвигает это требование с каждой итерацией своей технологии.

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

введите описание изображения здесь

вот скриншот того, что я получаю, когда создаю этот код.я добавил код в файл class.cpp, который был создан, когда я добавил новый проект «компонент среды выполнения Windows (универсальные окна)».

очевидно, здесь много чего не хватает, и мне нужно пояснение, чтоне требует сильного опыта в технологиях Microsoft (которых у меня нет и я не хочу).еще лучше было бы решение, которое не требует сильного фона в технологии Microsoft, которое просто работает.почему microsoft хочет сделать так, чтобы единственными людьми, способными программировать для окон, были люди, желающие посвятить все свое время изучению окон, трудно понять.Есть и другие пути без таких обременительных требований.

0 голосов
/ 27 февраля 2019

для всех, кто интересуется, я разработал библиотеку для извлечения каталога данных приложения магазина с функциями, которые можно вызывать из приложения для настольного компьютера.исходный код и двоичный файл можно найти по адресу:

https://github.com/timhirrel/TdhWinRT

0 голосов
/ 19 февраля 2019

ApplicationData находится в пространстве имен Windows :: Storage, и в первой строке примера c ++ оно должно быть

StorageFolder^ localFolder = Windows::Storage::ApplicationData::Current->LocalFolder;

, если вы не добавите using namespace Windows::Storage; Если вы хотите получить путь к папке как wchar_t*

const wchar_t* wPath = localFolder->Path->Data();
...