2008-10-31 96 views

回答

20

在Windows 64位系統的註冊表實際上是分爲分成兩部分。一部分由64位進程使用,一部分由32位進程使用。例如,如果一個32位應用程序以編程方式寫入它認爲是HKLM \ SOFTWARE \ Company \ Application的應用程序,它實際上被WoW64層重定向到HKLM \ SOFTWARE \ Wow6432Node \ Company \ Application。

所以,當您運行32位應用程序,並呼籲RegOpenKeyEx它的實際工作對Wow6432Node \文件夾,而不是常規\ SOFTWARE節點。

+2

注意,你不應該依賴於關鍵被稱爲「Wow6432Node 」。改爲使用RegOpenKeyEx標誌訪問其他註冊表視圖。 – 2011-07-29 17:46:44

0

我也有類似的問題。 我用:

dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
            (LPWSTR)"SOFTWARE\\0test", 
            0, 
            WRITE_DAC , 
            &hKey); 

這沒有奏效。我試了一下這樣的,它的工作:

dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
            _T("SOFTWARE\\0test"), 
            0, 
            WRITE_DAC , 
            &hKey); 
+5

決不只是插入蒙上閉嘴編譯器。編譯器正確拒絕編譯第一個沒有演員。 – 2011-07-29 17:47:11

0

您有「使用多字節字符集」或鑄造字符串代碼(LPWSTR)編譯

相關問題