2016-07-21 4 views
2

Я работаю над приложением UWP, предназначенным для работы на малине Pi. Мне нужно прочитать данные, хранящиеся в файлах .ini. Я знаю, что Microsoft хотела бы, чтобы я использовал xml, но мне нужно использовать ini.Использование GetPrivateProfileString из kernel32.dll

Я успешно использовал GetPrivateProfileString (после этого: http://www.codeproject.com/Articles/1966/An-INI-file-handling-class-using-C), чтобы читать значения из ini-файла со стандартным проектом C#.

Однако, похоже, это не работает над проектом UWP C#. У меня нет никакой ошибки, просто ничего не происходит, если я пытаюсь читать или писать с помощью функций kernel32.

Что происходит? Можно ли использовать эти функции в приложении UWP? Если нет, я должен сам написать класс ini-handling?

ответ

2

MSDN говорит:

Примечание Эта функция предусмотрена только для совместимости с 16-разрядными приложений на базе Windows. Приложения должны хранить инициализацию информацию в реестре.

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

+0

Я видел противоречивые мнения по этому вопросу - половина советует проигнорировать этот комментарий (просто найдите «C# read ini» в google, вы увидите только решения на основе kernel32.dll), другой советует забыть об использовании эти функции из-за комментария. Я бы с удовольствием использовал не устаревший ini API, если бы мог –

+0

[Эта страница] (https://msdn.microsoft.com/de-de/library/windows/desktop/mt186421%28v=vs.85%29. aspx? f = 255 и MSPPError = -2147217396) перечислены все возможные функции api для приложений UWP. 'GetPrivateProfileString' не существует, поэтому вам нужно сделать это самостоятельно. – ventiseis

+0

Я успешно использовал GetUsername из advapi32.dll (http://www.pinvoke.net/default.aspx/advapi32.getusername), хотя он там не указан, но это, вероятно, редкое исключение. Тогда я сделаю свой собственный парсер, с блэкджеком и проститутками. –

Смежные вопросы