Предотвращение записи WritePrivateProfileString в реестр - PullRequest
2 голосов
/ 12 декабря 2011

Есть ли способ отключить WritePrivateProfileString от записи в реестр и вместо этого использовать предоставленный нам INI-файл? Я вижу из MSDN, что вы можете отключить запись файлов и использовать исключительно реестр, но не наоборот. Я хочу, чтобы моя программа была переносимой, и в то же время использую стандартную apis для хранения данных конфигурации (вместо создания чего-то нового) ..

Спасибо

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Если ваш INI-файл отображается в реестре, вы, очевидно, добавили его в HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ IniFileMapping.Удалите эту запись, и ваш INI-файл окажется там, где вы ожидаете.Ваша строка кода работает, как и ожидалось, на моем компьютере.

MSDN Link

1 голос
/ 13 декабря 2011

Я предполагаю, что вы используете MFC, поскольку только у него есть собственные версии WritePrivateProfileString и аналогичные функции.Когда вы компилируете свой код с более новыми версиями MFC, вы автоматически используете MFC-эквиваленты этих API, а MFC просто использует информацию, которую вы передаете API, и записывает / читает их из реестра.Чтобы избежать этого, не пишите

WritePrivateProfileString

в своем коде, но

:: WritePrivateProfileString

вместо.

0 голосов
/ 13 декабря 2011

Да.Подцепите его (что вы можете легко сделать с помощью такой библиотеки, как Microsoft Detours ).

...