2011-12-12 113 views
1

有什麼辦法可以禁止WritePrivateProfileString寫入註冊表,而是使用我們提供給它的ini文件嗎?我從MSDN看到,您可以禁用文件寫入並專門使用註冊表,但反之亦然。我想保持我的程序隨身攜帶,在同一時間,使用標準的API贏來存儲配置數據(而不是創建新的東西)..防止WritePrivateProfileString進入註冊表

感謝

+4

當然,除非你明確地將它設置爲重定向到註冊表,否則它會轉到磁盤? – Deanna

+0

我沒有明確設置任何東西。例如,我正在設置ini文件:WritePrivateProfileString(L「Default」,L「MaxCmds」,L「100」,L「C:\\ Temp \\ Config.ini」); – Murlex

+0

@Murlex對不起,讓你困惑。我把我的API混淆了。 –

回答

1

如果您的ini文件正在映射到註冊表中,那麼您顯然已將其添加到 HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ IniFileMapping。刪除該條目,你的ini文件將會在你期望的地方結束。您的代碼行在我的機器上按預期工作。

MSDN Link

+0

就是這樣。它在啓動時卡在註冊表中,所以後續的寫入操作都沒有完成。 – Murlex

1

我假設你正在使用MFC,因爲只有擁有自己的WritePrivateProfileString和類似功能的版本。當你用新版本的MFC編譯你的代碼時,你會自動使用這些API的MFC等價物,而MFC只是使用你傳遞給API的信息並從註冊表中讀寫它們。 爲了避免這種情況,不寫

WritePrivateProfileString在你的代碼

:: WritePrivateProfileString

代替。

+0

謝謝Stefan。但我沒有使用MFC ... – Murlex