2011-11-07 66 views
0

我們目前有一個32位應用程序,要求在使用前從註冊表中加載各種鍵/值對。在32位應用程序上使用KEY_WOW64_64KEY的風險

此前我們已經通過加載.reg作爲安裝的一部分來完成此操作。在64位Windows上運行它,.reg組件最終存儲在64位存儲中,但我們的32位應用程序在32位存儲中查找。

我正在考慮使用KEY_WOW64_64KEY強制我們的32位應用程序始終使用64位存儲,但是this answer建議不要這樣做。然後我認爲我們可以將.reg文件更改爲指向32位存儲,但comment on this answer建議不要假設該密鑰總是被稱爲「Wow6432Node」

有沒有任何方法可以做到這一點(除了遷移整個應用程序爲64位)?使用64位存儲的32位應用程序有哪些風險?

回答

1

只要您不將HKEY句柄傳遞給期望x86 ==本地註冊表的非Reg *函數,我認爲不存在任何風險。 (另一方面,文件系統重定向不是每個句柄,並且如果一個子函數調用LoadLibrary或CoCreateInstance等會導致問題)

如果使用KEY_WOW64_64KEY看起來像是太多的黑客,爲什麼不安裝(32位)安裝程序寫入註冊表而不是使用.reg文件?這樣做的唯一缺點是,如果您將來創建應用程序的x64版本,它將不會與x86版本共享這些設置。 (這可能是一件好事或壞事)

+0

+1不使用.reg文件,讓安裝程序做這項工作是確定的方式去 –

相關問題