Ошибка Getprivateprofilestring - PullRequest
1 голос
/ 12 марта 2009

Я зашифровал некоторый текст и поместил его в INI-файл. Затем я использовал getprivateprofilestring () для получения значения, но некоторые из конечных символов отсутствуют. Я подозреваю, что это может быть символ новой строки, что делает его неполным. Запись в INI-файл в порядке. Открываем INI-файл и просматриваем разделы и ключи - все в порядке. Это просто извлекающая часть, которая вызывает ошибку.

Пожалуйста, любая помощь будет оценена.

Спасибо Эдди

Ответы [ 3 ]

1 голос
/ 15 марта 2009

Прежде всего при шифровании строк, убедитесь, что они преобразованы в Base64, прежде чем выгружать их в файл INI.

Скорее всего, зашифрованная строка создала символ ascii, который не очень хорошо обрабатывается API, связанными с INI.

0 голосов
/ 21 апреля 2009

Более чем вероятно, что шифрование вводит символ NULL в поток, который вы пишете. GetPrivateProfileString будет читать строку, пока не найдет символ NULL.

Так что я согласен с Angry Hacker, конвертирую в Base64 или другую дружественную для человека кодировку, и у вас не возникнет никаких проблем.

0 голосов
/ 14 марта 2009

WritePrivateProfileStringW записывает файлы в активную кодовую страницу ANSI по умолчанию; WritePrivateProfileStringA всегда будет писать ANSI.

Для достижения наилучших результатов следуйте указаниям здесь и используйте GetPrivateProfileStringW при чтении данных обратно

...