2009-03-12 3 views
1

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

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

Благодаря Эдди

+0

Пример кода и/или раздела проблемы ini поможет. – AnthonyWJones

+0

Да, без этого мы мало что можем сделать. – MarkJ

ответ

0

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

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

1

Во-первых, при шифровании строки, убедитесь, что они превращаются в Base64 перед сбросом их в файл INI.

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

0

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

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