以下C++/CLI代碼將nullptr返回給pKey。OpenSubKey在C++中的行爲與在C#中的行爲不同
RegistryKey^ pKey = Microsoft::Win32::Registry::LocalMachine->OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\Folders");
的下面C#代碼返回一個有效的指針PKEY。
RegistryKey pKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\Folders");
除了語言差異,這兩個代碼片段看起來與我完全相同。
我剛剛發現,在x64中構建C++代碼允許它找到密鑰。所以我的問題是現在如何在32位版本中找到密鑰?我需要在兩個版本中找到它。
謝謝。
我只是spitballing,所以我真的不能張貼此作爲一個答案,但有可能是有在傳遞的字符串參數的差異?也許C++/CLI值傳遞的是ASCII字符串,並且C#代碼不使用ASCII編碼。 – BTownTKD 2012-04-27 13:57:53